core - MutakamwoyoCloud/MCloud GitHub Wiki

Core

Introducción Nodejs

Una vez explicada la interfaz de nuestra aplicación falta el núcleo de esta. A el núcleo que proceso todo y es el corazón de la zona cliente lo llamamos Core.

El core de MCloud como ya sabemos también esta construido en javascript y debido al alto populismo y la cantidad de artículos que existen sobre el, el framework utilizado es NODEJS que nos deja unas nuevas librerías pontentes y fiables para trabajar con javascript de el lado del servidor.

Que es?

Node.js® es un entorno de ejecución para JavaScript construido con el motor de JavaScript V8 de Chrome. Node.js usa un modelo de operaciones E/S sin bloqueo y orientado a eventos, que lo hace liviano y eficiente. El ecosistema de paquetes de Node.js, npm, es el ecosistema mas grande de librerías de código abierto en el mundo.

Estructura

Gracias a nuestro ecosistema nodeJS podemos hacer un desarrollo ligero y directo con un flujo de ejecución controlado.

Las principales características de nuestro core son:

Servidor Rest HTTP: server.js

Lo primero que buscamos en el cliente de este sistema es un proceso o servicio que atienda peticiones de los usuarios, lo mas sencillo para lograr esto es el ya bien conocido servidor HTTP, estas palabras en nodejs nos llevaron a Express una gran librería que nos da justamente eso, los métodos necesarios para tener un servicio de escucha atendiendo peticiones de la manera mas ligera posible.

Este entonces es el primer modulo de nuestro core a partir de el funciona todo el sistema, este proceso escuchara por el puerto 3001 y se comunicara automáticamente con el puerto 3000 reservado para la GUI.

El modulo consiste en un servicio de escucha http con los métodos para contestar a todas las posibles peticiones, al ser el comienzo de la ejecución de el core se encargara también de crear el resto de módulos ademas de cargar posibles configuraciones.

Modulo principal: petitionhandler.js

El modulo principal encargado de la funcionalidad de la parte cliente de MCloud es el manejador de peticiones. Se encargara del manejo de peticiones, su orden, el encapsulamiento de estas dentro de paquetes... El manejador de peticiones se dedicara a recoger la información brindada por nuestro servidor y convertirla en paquetes que almacenara en el sistema de ficheros de nuestro so.

En el también podremos definir el horario de envío de peticiones de MCloud y se encargara de todas las operaciones con archivos binarios como puede ser la compression o descompresión de archivos.

Este modulo es el encargado de ejecutar los demás programas módulos para MCloud.

Modulo comunicación: ftpwrapper.js

El modulo de comunicación es ftpwrapper, es un programa estático que envuelve el protocolo normal File Transmission Protocol y agrega el código de el propio protocolo que usamos en MCloud para la transferencia de peticiones.

Como ya hemos dicho, el se dedicara de hacer llegar las peticiones al proveedor el que tendrá que tener un servidor ftp en escucha para atender las peticiones de este cliente.

Modulo Almacenamiento: data.js

Este seria el ultimo modulo principal de el core de el cliente, el se encargara de la tarea de almacenar todos los datos obtenidos delegando su almacenamiento final en disco a un servicio Mongodb personalizado para MCloud.

Contiene los métodos necesarios para guardar información con mongodb y también la de su acceso o modificación.