comunicacion_zonas - MutakamwoyoCloud/MCloud GitHub Wiki

3.3.1 Comunicación

Abstracción de FTP

Imagen 12

Ninguna de las dos zonas serviría para nada si no diseñamos un protocolo de comunicación para poder mantener el flujo de funcionamiento de MCloud.

En MCloud hemos optado por elegir FTP como la tecnología que se encuentra debajo nuestra para que se encargue de transferir el mínimo número de bytes de extremo a extremo.

Cita de Wikipedia:

FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

Encapsulando la información

Imagen 13

Desde que hemos hablado de hacer toda la parte cliente en el lenguaje JavaScript y con Mongodb es evidente que un objeto de encapsulación como puede ser JSON era la respuesta evidente en cuanto a cualquier tipo de planteamiento que haga referencia a la forma de el envío de información.

En MCloud transmitiremos todo a base de JSON con la mínima información necesaria que sea posible. Finalmente para poder enviar la información de la manera mas óptima posible se decidió empaquetar todo en el formato tar.gz, esta decisión de diseño es debida a la escasa subida y bajada del que disponen las zonas clientes de MCloud.

Reglas

El conjunto de reglas que define nuestro protocolo es el siguiente:

Push

Operación de escritura sobre el proveedor, itera en orden sobre todas las peticiones que se encuentran disponibles y las envía al Proveedor para que este las pueda almacenar y posteriormente procesar.

Fetch

Operación que pregunta al proveedor por paquetes listos para descargar, nos asegura mantener el orden de peticiones según su relevancia a la hora de descargar paquetes.

Pull

Operación de bajada de datos, nos permite descargar del proveedor los distintos paquetes con toda la información necesaria, es necesario realizar antes la operación fetch para saber qué paquetes y en qué orden hay que descargar.

Flush

Final de la transacción MCloud de extremo a extremo, una vez que se ha hecho correctamente el intercambio de paquetes esta acción realiza un borrado de todos las peticiones o paquetes que sobran del protocolo de comunicación.

⚠️ **GitHub.com Fallback** ⚠️