Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
PROGRAMACIÓN ORIENTADA A OBJETOS – MADCOLORJoaquin Pereira - David Arcos - Fernando Mateus
Programación de Sistemas – Proyecto UEMCloud
Joaquín Pereira - Fernando Mateus
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
OBJETIVOESPECIFICACIÓN DEL PROBLEMAARQUITECTURAARTICULACIÓN DE LA SOLUCIÓNCOMENTARIOS Y CONCLUSIONESBIBLIOGRAFIA
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
El objetivo del presente proyecto se centra en profundizar en los conceptos de Programación de Sistemas aprendidos en la asignatura a través de creación de una plataforma online como caso real.
UEMCloud > Objetivo
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
OBJETIVOESPECIFICACIÓN DEL PROBLEMAARQUITECTURAARTICULACIÓN DE LA SOLUCIÓNCOMENTARIOS Y CONCLUSIONESBIBLIOGRAFIA
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
Se trata de desarrollar una plataforma online que permita a usuarios poder disponer de un repositorio de almacenamiento que sea accesible desde cualquier ubicación y dispositivo (Móvil, Tablet o PC).
Además de la comodidad y el ahorro que pueda suponer, queremos disminuir la exposición de nuestra información ante terceros.
UEMCloud > Especificación del Problema
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
OBJETIVOESPECIFICACIÓN DEL PROBLEMAARQUITECTURAARTICULACIÓN DE LA SOLUCIÓNCOMENTARIOS Y CONCLUSIONESBIBLIOGRAFIA
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus UEMCloud > Arquitectura > Alto nivel
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
Casa persona A
Router :443000:443
Apache: Es el servidor web de código abierto que ha sido instalado en la Raspberry Pi y que permite la creación de la infraestructura para establecer el acceso web a la Raspberry PI
UEMCloud > Arquitectura > Detallada (I)
OpenSSL: robusto paquete de herramientas de administración y bibliotecas relacionadas con la criptografía, que suministran funciones criptográficas a otros paquetes. Sobre el hemos creado un certificado que nos permite encriptar la conexión. Evitando ataques e intrusos no deseados. No-Ip: es un servicio gratuito que gestiona un dominio a una dirección IP dinámica.Php: lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. MySQL: sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.Owncloud: Aplicación web desarrollada en HTML 5 y PHP que permite establecer nuestra propia Nube de datos.
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus UEMCloud > Arquitectura > Detallada (II)
DNS DinámicoBúsqueda DNS:UEMCloud.comBúsqueda DNS:
UEMCloud.com
Equipo B1(Directorio de
Sincronización)
Casa persona BCasa persona A
UEMCloud de persona B
Router
Actualización Periódica del DNS dinámico con IP pública
Móvil / Tablet / PC
Internet
:443000:443
Desde la casa de la persona A (donde se aloja la Raspberry Pi de la persona B), se encuentra la Raspberry Pi preconfigurada con UEMCloud y con una unidad flash USB de alta capacidad. Periódicamente actualiza un servicio de DNS dinámico con su IP pública. Además, en la casa de la persona A se tiene habilitado el reenvío de puertos para que cualquier tráfico que entra en el puerto 44300 se remita al puerto 443 de la Raspberry Pi.
Esto significa que desde la casa de la persona B, se puede encontrar la ubicación del la UEMCloud por su nombre (a través de DNS dinámico) y asegurar que el tráfico al puerto 44300 se enviará a la Raspberry Pi con UEMCloud (port forwarding en el router). Como resultado de lo anterior la persona B en su casa es capaz de sincronizar sus carpetas a la Pi y utilizar la interfaz web. Fuera de casa básicamente funciona de la misma manera. Un teléfono con un navegador o la app buscará la dirección DNS de la Pi, y se conectaría de la misma manera, excepto que lo hace vía red de datos 3G/4G.
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
OBJETIVOESPECIFICACIÓN DEL PROBLEMAARQUITECTURAARTICULACIÓN DE LA SOLUCIÓNCOMENTARIOS Y CONCLUSIONESBIBLIOGRAFIA
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus UEMCloud > Articulación de la Solución
EmulaciónDel Entorno
Instalación y Configuración del Software Necesario Explotación
Raspberry Pi, y su SO corre sobre arquitectura armv6 y nuestras máquinas con x64 por lo que no se puede virtualizar con máquinas virtuales (VMWare o similar).
Vamos a utilizar Quick Emulator (Qemu) sobre Linux que si soporta arquitecturas ARM y MIPS entre otras.
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus UEMCloud > Articulación de la Solución
EmulaciónDel Entorno
Instalación y Configuración del Software Necesario Explotación
1a.- Seleccionar una versión de Linux, en nuestro caso Ubuntu.
1b.- Instalar Qemu desde la line de comandos de Linux: sudo apt-get install qemu
1c.- Creamos un directorio de trabajo: mkdir ~/virtual; cd ~/virtual
1d.- Descargas. Si no tuviéramos el kernel lo descargamos: wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
Para obtener la imagen de Raspbian wget http://downloads.raspberrypi.org/raspbian_latest
Descomprimimos el zip: unzip XXXXwheezy-raspbian.zip
donde XXX es la version descargada
1e.- Comprobamos que nuestro Qemu admite arm: qemu-system-arm -cpu
En ocasiones no nos devuelve nada pero podemos continuar
1f.- Arrancamos Raspbian (primer arranque)
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda wheezy-raspbian.img
1g.- Editaremos fichero ld.so.preload para comentar la linea de código que nos muestra, incluyendo una almohadilla # en como primer carácter.
nano /etc/ld.so.preload
salir salvando con crt+x quedando: #/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
1h.- Guardamos, salimos y apagamos el sistema: halt
1i.- Los siguientes arranques se realizarán con:
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda XXXXX-wheezy-raspbian.img
donde XXX es la version descargada
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus UEMCloud > Articulación de la Solución
EmulaciónDel Entorno
Instalación y Configuración del Software Necesario Explotación
Como mencionamos anteriormente, el software instalado para el desarrollo de nuestra nube es:
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus UEMCloud > Articulación de la Solución
EmulaciónDel Entorno
Instalación y Configuración del Software Necesario Explotación
Nube A (Fernando Mateus)
Direccion:
Ucloud.linkpc.net:8000/ucloud
Caracteristicas:
• Almacenamiento de 16gb• Conexion Fibra• Informacion Encriptada• Acceso SSH• Acceso VNC
Nube B (joaquin Pereira)
Direccion:
Jpcloud.noip.me
Caracteristicas
• Almacenamiento de 4gb• Conexion Fibra• Informacion Encriptada• Acceso SSH• Acceso VNC
Actualmente tenemos 2 nubes operativas:
El siguiente paso en nuestro desarrollo es poder hacer la conexion entre ellas para poder replicar la informacion
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
EmulaciónDel Entorno
Instalación y Configuración del Software Necesario Explotación
UEMCloud > Articulación de la Solución
Actualmente podemos subir a UEM Cloud archivos tanto desde PC´s como desde dispositivos móviles.
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
EmulaciónDel Entorno
Instalación y Configuración del Software Necesario Explotación
UEMCloud > Articulación de la Solución
Demostración
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
Bibliografía
OpenSSL: https://www.openssl.orgNo-Ip: http://www.dnsexit.com/Direct.sv?cmd=userhomePhp: http://php.netMySQL: http://www.mysql.comOwncloud: http://owncloud.orgUEM Programación de Sistemas:http://campusvirtual.uem.es/moodle/course/view.php?id=87703
Agradecimientos:
Rob Sederhttp://blog.robseder.com/2014/09/15/a-secure-cloud-storage-solution-pi-owncloud-part-1-of-2/Techjawabhttp://www.techjawab.com/2014/08/how-to-setup-owncloud-7-on-raspberry-pi.html
Proyecto UEMCloudJoaquín Pereira - Fernando Mateus
Gracias por vuestra atención!!!