¿Qué es Node.js?

 Node.js es un framework orientado a eventos e I/O para el motor Javascript V8 de Google en  plataformas *Nix. Nos permite crear software  de red escalabale, como un servidor web, es decir, nos permite crear software del lado del servidor utilizando al potente V8 y Javascript.

Node.js surge como una nueva forma de aprovechar la experiencia con Javascript, esta vez, del lado del servidor.  Permitiendo generar software de manera sencilla (la gran mayoría de desarrolladores web conocen javascript y saben que les gustaría que el backend tuviera) recursos asíncronos y orientados a eventos. Node.js simplifica mucho estas tareas, proponiendo un modelo de ejecución y programación de gran potencia en la realización de servicios.

Modelo de ejecución

El desarrollador ve cada proceso del servidor Node.js como un único thread que sirve todas las peticiones que recibe, aquí todo es serializado en un único bucle de eventos, a diferencia de servidores como apache que generan un nuevo thread por cada petición, un servidor escrito en Node.js genera un nuevo evento dentro del mismo thread. Esto permite no preocuparse por memoria compartida u otros, disminuyendo el tiempo de desarrollo y los bugs.

El crear nuevos threads (como apache u otros) es un proceso mucho mas “pesado” para el S.O. que generar un nuevo evento en Node.js, es decir, la performance de un servidor web creado con Node.js cuando hay muchas peticiones es mejor que en un servidor normal.

Desde dentro Node.js contiene un pool autogestionado de thread, sobre el  se lanzan todas las tareas que requieren algún tipo de I/O o alguna tarea bloqueante. Así, Node.js es monothread para el desarrollador, todas las llamadas que impliquen una cierta espera (procesos bloqueantes) son invocados de forma asíncrona, proporcionando un manejador de callback o un suscriptor a eventos.

Finalmente, los bloqueos de espera en el thread principal son eliminados, así todo ocurre en el mismo instante!

 

 

Node.js es actualmente una gran herramienta para generar sistemas de alto rendimiento, y gracias a la versatilidad y poder de Javascript, se ha convertido en una gran herramienta para el desarrollo de servicios de tiempo real.

Node.js ya tiene una gran cantidad de módulos que permiten hacer diversas tareas, existen desde frameworks, CMS, websockets, etc. Puedes encontrarlos aquí

En un próximo post (espero pronto) comenzaré a ver algo de código.

 

 

 

 

Advertisement
    • javier medrano
    • 14/08/11

    Excelente info, espero más detalles

  1. gracias por el resumen!

    • Franz Ferrufino
    • 31/12/11

    gracias por los datos son de mucha ayuda, por favor podria poner algo de codigo para ver como funciona NODE.JS

  2. Excelente información, la pondré en practicar, para incorporar a nuevos servidores.

  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 258 seguidores