RESUMEN
ALMACENAMIENTO DE DATOS EN LA NUBE Y DESARROLLO DE UNA APLICACIÓN WEB
Por
Edgar Solórzano López
RESUMEN DE PROYECTO DE TITULACIÓN
FACULTAD DE INGENIERÍA Y TECNOLOGÍA Universidad de Montemorelos
Título: ALMACENAMIENTO DE DATOS EN LA NUBE Y DESARROLLO DE UNA APLICACIÓN WEB
Autor: Edgar Solórzano López Asesor: Ing. Saulo Hernández Fecha de terminación: Mayo 2014
Problema:
¿Cuál es la importancia del almacenamiento en la nube para los usuarios que manejan mucha información digital? ¿Qué ventajas y desventajas traen consigo este tipo de servicios? Y desarrollo de una aplicación web.
Método:
Se realizara un estudio de literatura para conocer el estado del arte con todo lo relacionado al almacenamiento en la nube, para que se proceda al desarrollo de una aplicación web. Y el usuario pueda realizar diferentes tareas en esta plataforma. Realizar un video donde presentaremos las ventajas de utilizar esta herramienta.
Resultados:
Desarrollar una plataforma web para almacenar información y en ella podamos realizar diferentes tareas, entre ellas, subir nuestros archivos, descargarlos, eliminar, crear
RESUMEN
¿En alguna ocasión te ha pasado que por equivocación has eliminado alguna información de algún dispositivo y necesitas recuperarlo?, o ¿quizás ese dispositivo fallo y no encuentras la formas de hacerlo funcionar?. Para evitar estos problemas existen herramientas de almacenamiento en la nube.
DEDICATORIA
Dedico primeramente este proyecto a Dios por sus bendiciones que me ha brindado, por la sabiduría y entendimiento que me ha regalado y porque sin Él no fuera posible.
A mis padres, porque a pesar en las condiciones difíciles siempre han creído en mí, y me han apoyado en las buenas y en las malas.
A esa gran persona Adriana, que he recibido un gran apoyo incondicional desde que este proyecto fue una simple idea
A mis amigos que he recibido su amistad y compañerismo. Rusbel Domínguez, Lizandy Torres, Emmanuel de Oleo, Hugo Álvarez, Hiram Hernández, Luis Pantaleón, Samuel Gómez. Erick Arias.
A mis profesores por sus enseñanzas y su paciencia por explicar cada una de las dudas. Y a las personas que alguna vez no creyeron en mí porque me dieron el coraje de concluir con este gran paso en mi vida.
Tabla de contenido
CAPITULO I ... 1
INTRODUCCIÓN ... 1
Justificación ... 3
Definición del problema ... 3
Declaración del problema ... 4
Limitantes ... 4
Delimitantes ... 4
Objetivos ... 4
Definición de términos... 4
CAPITULO II ... 6
Antecedentes ... 6
Aporte al proyecto ... 9
Breve explicación ... 9
Desarrollo ... 11
Herramientas y tecnologías utilizadas ... 11
Tablas creadas ... 13
Registro ... 16
Iniciar sesión ... 18
Cargar Archivos ... 19
Papelera ... 21
Editar nombre de archivo ... 22
Compartir archivos ... 23
Agenda ... 23
Crear carpetas ... 26
Configuración ... 27
Búsqueda ... 28
Descargas ... 29
CAPITULO III ... 30
Conclusiones ... 30
Trabajos futuros ... 31
1 CAPITULO I
INTRODUCCIÓN
Todo tiene su historia, y la forma de guardar información no iba a ser una excepción. Desde que existe la humanidad, la necesidad de almacenar todo lo que se sabía ha sido una constante. En forma de dibujos en cuevas, filigranas sobre papiro, escritos en antiguos manuscritos. Todo fuera por preservar conocimientos. El escriba era un personaje admirado y respetado, sobre todo en el antiguo Egipto, ya que solía copiar textos, una ardua profesión que, sin duda, ha servido para que los conocimientos del pasado llegaran hasta la actualidad. Ahora, podemos consultar toda esa información con sólo hacer un click en un buscador de Internet, y entre medio, ha habido una apasionante historia que vale la pena repasar.
No podemos decir que haya un primer tipo de almacenamiento en concreto ya que ha sucedido una evolución constante, pero lo que queda claro, de forma unánime, es que un sistema de almacenamiento en el terreno de la informática es todo aquel sobre el que se puede guardar o leer información, ya sea de forma alternativa, simultánea o combinada. Hablamos de la memoria secundaria de cualquier computadora, y si tuviera que haber un tipo de almacenamiento por excelencia, ése sería el disco duro.
2
versatilidad y, sobre todo, a la capacidad de escribir sobre el contenido existente. El abaratamiento de los costos de fabricación también ha tenido mucho que ver.
Pero el disco duro es sólo una de las formas de almacenamiento existente. Digamos que al principio, cuando hablábamos de una computadora, el disco duro formaba parte de su estructura indivisible, y no se estilaban, ni se consideraban como ahora, los discos duros externos, por lo que se buscó otro tipo de dispositivos que permitieran el almacenamiento de datos, se pudieran leer y escribir, y fueran transportables. ¿Conocen los disquetes? Ahora que hace poco se anunció que cesaría su fabricación, nos podemos hacer una idea de la cantidad de tiempo que este primigenio dispositivo ha estado entre nosotros. Al principio medían 20 centímetros, pero evolucionaron hacia los discos de 5 y cuarto (pulgadas), o discos blandos, y posteriormente a los de 3 y medio, que alcanzaron, como mucho, los 2,88 MB de capacidad, una cantidad ridícula ahora, pero que para entonces, el estándar de 1,44 MB con el que convivimos tantos años fue, a nivel doméstico, prácticamente la única forma de pasar información. Muchos somos los que hemos tenido información que se ha perdido en disquetes, ya que eran prácticos, pero algo delicados en su uso, sobre todo a largo plazo. Por suerte, su “sustituto” llegó con el tiempo.
3 Justificación
La información digital la encontramos en todas partes de la sociedad, circula por la redes, se observa en las pantallas, lo tenemos en nuestros móviles, todos los materiales relacionados a nuestro acceso a la información como son los libros, revistas, discos, nuestros álbumes de fotos; ahora todo es información digital, y claro toda esta información debe de estar alojada en algún lugar.
Uno de los problemas principales que podemos encontrar en las escuelas, y empresas, incluso en los hogares, es el almacenamiento de tu información, ¿pero a que le llamamos información? Tareas, fotos, videos, archivos, música. Regularmente guardamos esa información en nuestros dispositivos móviles, computadoras, USB, entre otros. ¿Pero qué pasa si te roban tu computadora, o se te pierde el USB?, por alguna u otra razón ya no tienes ese dispositivo, y necesitas la información que había en ellos, algunas veces se puede recuperar, pero desgraciadamente muchas veces no podemos, hoy en día la tecnología ha avanzado tanto, que no es necesario que tengamos en nuestras manos algún dispositivo como los que acabamos de mencionar.
Aunque hoy en día existan diversos servicios de almacenamientos, muchas personas no tienen idea de las ventajas del porque utilizarlos, es más ni siquiera saben de lo que trata. Por esta razón he decidido hacer este proyecto, para hacer énfasis en las ventajas que trae al utilizar estos tipos de servicios.
Definición del problema
4
Declaración del problema
El presente proyecto propone un sistema de respaldo de información en la nube para aquellos usuarios que procesan gran cantidad de información digital. Usando conceptos de clasificación temática, manejo de archivos y sistema de agenda. Administrado desde la WEB.
Limitantes
a. Se implementará de forma local debido al costo del hosting. b.
Delimitantes
a. Solo será de acceso WEB b. Se programará con PHP.
Objetivos
Desarrollar una plataforma en la que el usuario pueda almacenar todo tipo de información y que pueda acceder desde la web. Enseñar a los usuarios las ventajas de utilizar esta herramienta.
Definición de términos
5
Mainframes: Una computadora central es una computadora grande, potente y costosa usada principalmente por una gran compañía para el procesamiento de una gran cantidad de datos
6 CAPITULO II
Antecedentes
Todos los servicios públicos han sufrido una evolución desde sus comienzos, hace unos 100 años parecía normal que las empresas tuvieran su propio generador de energía para abastecer sus necesidades, pero hoy lo normal es apretar un botón y se enciende una bombilla, y no nos imaginamos todo el proceso que pasa la energía para que esa bombilla encienda.
Lo mismo sucede con cualquier servicio público como el agua, el gas, el teléfono. Esta misma evolución ha llegado a la computación y lo conocemos por Cloud Computing. Los antecedentes del cloud computing empiezan en los años 60´s y se remonta a J.C.R. Licklider y John McCarthy.
John McCarthy en 1961, durante un discurso celebrando el centenario del MIT, dijo que "Algún día la computación podrá ser organizada como un servicio público", tal como el agua o la electricidad.
La virtualización de las máquinas tiene más años de antigüedad de lo que uno se podría imaginar.
La virtualización comenzó a desarrollarse por IBM durante la década de 1960,. El objetivo de la virtualización es abstraer el hardware de forma que pueda ser utilizado con mayor eficiencia. Dado el alto costo de los mainframes, se busca aprovechar la inversión en ellos completamente (Goldberg, June 1974.)
7
En 1998 VMware presenta una patente en Estados unidos con el concepto que revolucionaria el mercado: System and method for Virtualizing computer system. Esta patente describe la arquitectura pensada por VMware para la creación de un componente que virtualice varios equipos utilizando una sola computadora x 86.
No fue hasta el año 1999 que este concepto tomo auge con una solución para los sistemas llamados abiertos de VMware Workstation. (Marchionni)
Los tipos de virtualización en orden conforme fueron desarrollándose son:
1.-Virtualización asistida por hardware: Esta técnica aprovecha el soporte de virtualización brindado por el nuevo hardware de Intel-VT y AMD-V; ambos proveedores han incorporado un nuevo nivel de privilegio para el procesador. Este nuevo nivel es denominado anillo “-1” y se encuentra dentro del anillo “0” con privilegios completos.
En este nuevo nivel de privilegio, la técnica de virtualización asistida por hardware ejecuta su Hypervisor, en el anillo “0” se ejecuta el SO Guest y en el anillo “3” las aplicaciones de usuario. Cuando el SO de la VM intenta ejecutar un bloque de instrucciones privilegiadas, el Hypervisor captura automáticamente la petición de forma segura, y ejecuta directamente las instrucciones de la VM, por medio de la técnica de ejecución directa, en forma transparente. (Rodriguez, 2011).
2.- Virtualización completa: Esta técnica proporcionar una completa emulación del hardware físico y no requiere asistencia de hardware ni de determinadas Systems Calls en
los kernels de los SO de las VMs. Sin embargo, la necesidad de brindar al SO de la VM una
interfaz completa del hardware físico, tiene un costo muy importante en el rendimiento.
Dicho costo puede ser mitigado mediante el uso de virtualización asistida por hardware.
(Rodriguez, 2011)
3.-Paravirtualizacion: La interfaz presentada por el VMM al sistema huésped no es
completamente idéntica al sistema real. Esto tiene el fin de que ciertas operaciones que son
más fáciles y rápidas de realizar en el sistema real, comúnmente un sistema operativo
modificado, sean realizadas en forma transparente para el sistema huésped (Andrew
8
Línea del tiempo de aplicaciones de cloud computing
1999 Salesforce.com Uno de los pioneros, que introdujo el concepto de entrega de aplicaciones empresariales a través de una sencilla página web.
2002 Amazon era el siguiente en el tren, al lanzar Amazon Web Service.
2006 Google Docs, que realmente trajo el cloud computing a la vanguardia de la conciencia del público.
2006 Elastic Compute Cloud de Amazon (EC2) : como un servicio web comercial que permitió a las empresas pequeñas y particulares alquilar equipos en los que pudieran ejecutar sus propias aplicaciones informáticas.
2008 Eucalyptus, como la primera plataforma de código abierto compatible con el API-AWS para el despliegue de clouds privados
OpenNebula, el primer software de código abierto para la implementación de nubes privadas e híbridas.
2009 Microsoft entraría con el lanzamiento de Windows Azure. 2009 se fundó Dropbox
2010 Luego proliferaron servicios en distintas capas de servicio: Cliente, Aplicación, Plataforma, Infraestructura y Servidor.
2011 ICloud: En 2011, Apple lanzó su servicio iCloud, un sistema de almacenamiento en la nube - para documentos, música, videos, fotografías, aplicaciones y calendarios - que prometía cambiar la forma en que usamos la computadora. (Valencia, 2012)
También hoy en día existen diversas aplicaciones de almacenamiento en la nube que han ganado popularidad y son: Google Drive que antes era google docs y One Drive entre otros.
9
Aporte al proyecto
Breve explicación
Los objetivos que se especificaron en el proyecto fueron dos, el primero es el desarrollo de una plataforma web, donde el usuario podrá acceder de manera fácil y sencilla.
Empezamos con explicar cómo el usuario podrá utilizar esta plataforma.
Primeramente el usuario tendrá que registrarse, llenando un pequeño formulario, donde solo tendrá que proporcionar cuatro datos:
Nombre Apellidos
Contraseña en la cual se le pide que la vuelva escribir con el objetivo de que el confirme la contraseña que está estableciendo.
por ultimo un correo electrónico.
Después de registrarse al usuario le llegara un mensaje por correo electrónico donde se le pedirá que acceda a un enlace, de esta manera nos aseguramos que el correo electrónico que el usuario estableció exista. Así, cuando acceda se le re direccionara a la página donde iniciara sesión, en esta página solo tendrá que introducir su correo electrónico y contraseña. Al Iniciar sesión entrara en su portal, donde el usuario podrá hacer diferentes tareas de una forma sencilla y práctica.
La principal tarea será subir diferentes tipos de archivos.
El diseño de esta plataforma se desarrolló para que el usuario pueda navegar de una manera fácil, y que pueda tener sus diferentes tipos de archivos lo más ordenados y clasificados posible, de esta manera se le da dos opciones al usuario:
10
2.-Si él usuario prefiere, puede crear carpetas y ordenarlas de la manera que más le convenga. De esta manera queremos lograr que el usuario tenga ordenada su información.
El usuario también podrá realizar diferentes funciones con cada archivo, primeramente podrá descargarlo si así lo prefiere, podrá eliminar un archivo a la carpeta de reciclaje y recuperarlo si así lo desea, ahora bien si lo elimina de la carpeta de reciclaje ya no podrá recuperarlo.
Una de las tareas importantes que podrá realizar el usuario será el de compartir archivos, cada vez que el usuario quiera compartir un archivo, se le pedirá que introduzca un correo electrónico, este correo electrónico debe de ser de un usuario que está registrado, o bien también podrá escoger desde una agenda el contacto con el que desea compartir el archivo. En el portal hay una carpeta predeterminada en donde exclusivamente se encuentren los archivos que se han compartido.
Otras de las funciones que el usuario podrá realizar en esta plataforma es que tendrá una agenda virtual, donde podrá registrar a sus contactos con más frecuencia, llenara un pequeño formulario, donde tendrá que introducir los siguientes datos:
Nombre Apellidos
Correo electrónico Teléfono
De los cuales para que sea un contacto es obligatorio que introduzca por lo menos el nombre y el correo electrónico de estas personas, ya que una de las finalidades de esta agenda, es que al momento de compartir un archivo, podrá seleccionar de manera directa al usuario.
De esta manera queremos lograr que el usuario navegue por esta plataforma en la que podrá realizar diferentes tareas pero de una manera sencilla y fácil.
11 Desarrollo
Herramientas y tecnologías utilizadas
PHP:
Php versión 5.2.4 para recordar un poco este lenguaje de programación de código del lado del servidor su creación original fue para el desarrollo web. Este fue uno de los primeros lenguajes de programación que se podía incorporar directamente en el documento HTML en vez, de llamar un archivo externo que procede los datos. El código es interpretado por un por un servidor web que genera la página web resultante. Es un lenguaje libre y se publica bajo licencia de PHP. Este lenguaje puede ser puede ser desplegado en la mayoría de los servidores web y en la mayoría de los sistemas operativos y plataforma sin costo alguna.
Cuando el cliente hace una petición a un servidor para que le mande una página web, el servidor ejecuta el intérprete de PHP. Este procesa el script solicitado que genera el contenido de manera dinámica. El resultado es enviado por el intérprete quien a su vez lo envía al cliente.
Permite la conexión a diferentes tipos de bases de datos tanto SQL como MYSQL, PostgreSQL, Oracle, mongoDB, entre otros.
El intérprete PHP solo ejecuta el código que se encuentra entre sus delimitadores las cuales son <?php para abrir, y para cerrar ?>. El objetivo de estos delimitadores es para separar el código PHP de cualquier otro código.
Las variables se declaran con el signo de dólar $ y no es necesario indicar de qué tipo es la variable. Las variables se distinguen entre mayúsculas y minúsculas. Las cadenas de caracteres pueden ser encapsulados entre comillas simples o doble comillas.
Los comentarios se pueden hacer con los siguientes caracteres: //, /**texto**/. Como es habitual cada sentencia debe de finalizar con un punto y coma (;). Características:
1. Es un lenguaje fácil de aprender.
2. El código fuente es invisible al navegador web y al cliente.
12 4. Es libre.
5. Permite aplicar técnicas de programación orientada a objetos.
6. Capacidad de expandir su potencial utilizando módulos llamados extensiones.
Servidor PHP
Apache es el servidor más utilizado con el mayor número de instalaciones a nivel mundial. Apache es un proyecto de código abierto y uso gratuito, multiplataforma, y destaca por seguridad y rendimiento.
JavaScript
Es un lenguaje de programación que permite crear acciones en las páginas web. No requiere de compilación ya que el lenguaje funciona del lado del cliente y los que se encargan de interpretar el código son los navegadores. Es un lenguaje que utiliza Windows y sistemas de X-Windows, gran parte de la programación en este lenguaje se centra en describir objetos, escribir funciones que respondan a movimiento del mouse, aperturas, utilización de teclas, cargas de páginas, entre otros.
Base de datos MYSQL versión 5.0.5.1B
MYSQL es un sistema gestor de base de datos muy conocido y ampliamente usado pos su simplicidad y notable rendimiento.
Está disponible para múltiples plataformas. Algunas características:
1. Soporta múltiples métodos de almacenamiento de tablas. 2. Su administración se basa en usuarios y privilegios. 3. Esta optimizado para equipos de múltiples procesadores. 4. Es muy destacable su velocidad de respuesta.
13 Función MD5
La función MD5 es una función hash irreversible, es decir encripta un string deseado y es imposible que partiendo de la cadena encriptada se vuelva a la contraseña original. Ya que en la base de datos se guarda la contraseña encriptada, cuando un usuario quiere acceder, habrá que realizar una comparación entre la contraseña que introduce encriptado en MD5, y lo tenemos en la base de datos, si coincide se le permite el acceso, sino se le pide que corrobore su contraseña. Debemos de tener en cuenta que esta función no es completamente seguro. Devuelve el hash como un número hexadecimal de 32 caracteres.
Tablas creadas
La base de datos creada es llamada cloud computing, y guardara diferentes tipos de información. Esta tabla de datos contiene 7 tablas y son las siguientes:
1. usuarios: dentro de esta tabla se guardara información personal de cada usuario que se registre, sus campos son:
el id_usuario: Este id es único para cada usuario registrado. Nombre: Nombre del usuario.
Apellidos: Apellidos del usuario
Pass: Donde guardaremos el hash que se creara de la contraseña que introduzca el usuario para establecer seguridad a las contraseñas, mencionaremos el proceso más adelante.
correo_electronico: En este campo guardaremos el correo del usuario, este campo es importante ya que es uno de los principales datos que se le solicitara al momento de iniciar sesión.
14 Fecha: Del registro.
Hora: Del registro.
2. archivos, dentro de esta tabla se guardara toda la información que hace referencia a todos los archivos que el usuario suba desde su portal, sus campos son:
id_archivos: id único del archivo archivos: Hace referencia al nombre.
id_usuario: Este id es para saber a qué usuario pertenece el archivo que se ha subido. Tamaño: Tamaño expresados en bytes.
Dirección: dentro de este campo se guardara el hash del directorio donde se encuentra alojado el archivo.
Tipo: qué tipo de archivo se ha subido.
nombre_servidor: aquí se guardara el hash del nombre que se le asigna al momento de llegar al servidor, este proceso se explicara más adelante.
Ext: la extensión del archivo.
3. compartidos, en esta tabla se almacenara la información necesaria de los archivos que se comparten entre los usuarios y sus campos son:
Id_archivos: id único del archivo Nombre_archivo: nombre del archivo Id_contacto: id del contacto que compartio Dirección: directorio del archivo
Tipo: tipo de archivo
Tamaño: tamaño del archivo
4. contactos. Aquí se almacenara la información de todos los contactos que el usuario desee agregar, y se crearon estos campos:
15 Email: correo electrónico del contacto Teléfono: teléfono del contacto
Id_usuario: id del usuario que agrego al contacto
5. papelera, dentro de esta tabla se moverá la información de los archivos que el usuario vaya eliminando. Ya que tendrá la oportunidad de recuperarlo si lo desea, o bien, podrá eliminarlo y ya no podrá hacerlo. En esta tabla se crearon los siguientes campos:
Id_archivo: id único del archivo Archivos: nombre del archivo
Id_usuario: id del usuario que elimino el archivo. Tamaño: tamaño del archivo
Dirección: directorio del archivo Tipo: tipo del archivo
6. Tabla carpetas, ya que en esta tabla se guarda la información de esa carpeta para ellos hemos creado los siguientes campos:
Id_carpeta: id de la carpeta creada.
Nombre_carpeta: nombre que recibió la carpeta. Id_parents: id donde ha sido creada la carpeta Id_usuario:id del usuario que creo la carpeta Id_unico: nombre encriptado de la carpeta
Id_carpetaraiz: : id del nivel donde ha sido creada la carpeta
7. Tabla foto perfil, ya que el usuario tendrá la oportunidad de crear su propio perfil, aquí guardara información de las fotos que podrá ir cambiando en su perfil, se crearon los siguientes campos:
Id foto: id único de la foto Nombre foto: nombre de la foto
16 Tamaño: tamaño de la foto
Dirección: directorio de la foto Tipo: tipo de archivo
Registro
Antes de iniciar con cualquier otra actividad en esta plataforma es necesario que el usuario se registre. Como mencionamos en la sección anterior, el usuario tendrá que introducir los siguientes datos: nombres, apellidos, contraseña y correo electrónico. Y estos datos se van a la tabla usuarios.
17 figura 2 formulario de Registro
Se decidió pedir estos datos por el siguiente motivo:
Cuando el usuario ha iniciado sesión y entra a su portal en la parte de la cabecera se le da la bienvenida y hay una leyenda que dice: “Bienvenido nombre del usuario” por eso se pide en el registro el nombre del usuario.
Ingresara su apellido y este dato se tomara en cuenta para nombrar a la carpeta que se creara del usuario, dicho dato será encriptado.
Uno de los datos muy importantes es la contraseña, la contraseña es la clave para que el usuario se pueda loguear y poder entrar a su portal. Este dato también será encriptado Y por último el correo electrónico, este es otro de los datos que es necesario para iniciar sesión.
Validamos este formulario con JavaScript, primeramente que el usuario inserte los datos obligatorios, después, verificamos que el usuario está insertando un correo electrónico valido, y que no se ha registrado anteriormente.
18 Figura 3 formulario de inicio de sesión
formar el nombre de la carpeta. También declaramos una variable para inserta el directorio de la carpeta, con el fin de que cada usuario almacene sus archivos en la carpeta correspondiente. Y por último la hora y la fecha del registro. Todos estos datos se insertan en la tabla usuarios.
Iniciar sesión
19 Cargar Archivos
Como mencionamos anteriormente, dentro del portal se podrá hacer diferentes tareas, y una de las tareas importantes será, subir nuestros archivos, primeramente quiero mencionar, los archivos se alojaran directamente al servidor y que únicamente los datos del archivo se almacenaran en la tabla Archivos de la base de datos. La forma en que los archivos se subirán al servidor será mediante FTP (protocolo de trasferencias de archivos) este protocolo se le considera como uno de los más estables sobre internet. Para que se pueda utilizar este protocolo se deben presentar dos partes. La primera disponer un
programa servidor y la segunda se deberá tener a la disposición un software cliente. Y este el proceso para subir un archivo:
Primeramente se selecciona el archivo que desea subir, se permitirá subir diferentes tipos de archivos, application/pdf, image/jpeg, officedocument.wordprocessingml.document, audio/mp3,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/vnd.openxmlformats-officedocument.presentationml.presentation, audio/x-ms-wma, audio/x-ms-wma,
image/png, por el momento no podremos subir videos por los permisos del servidor. Encriptamos el nombre del archivo con la función MD5, al momento de que el código sepa qué tipo de archivos está subiendo, se le concatenara la extensión correspondiente al tipo de archivo. Limitaremos a que el tamaño límite del archivo sea de 8mgb. El siguiente proceso es la transferencia de archivo mediante FTP, primeramente iniciamos la sesión al servidor, iniciamos sesión con nuestro usuario y contraseña.
Cambiamos al servidor al modo pasivo, de esta manera nos aseguramos que nosotros seremos empezaremos la transmisión de datos. Enseguida se cambia al directorio donde queremos subir los archivos, con el código ftp_put subimos el archivos con sus respectivos parámetros. Hacemos la consulta SQL para insertar los datos del archivo a la tabla Archivos de la base de datos.
Cada archivo que el usuario suba aparecerán en forma de lista en su portal, no importa qué tipo de archivo sea, pero de forma predeterminada se encuentran carpetas virtuales en la que automáticamente se organizaran los archivos dependiendo de qué tipo sea. Las
20
Archivos: Dentro de esta carpeta encontraremos todos los archivos con extensión .pptx, .docx, .pdf, .xlsx. para lograr este filtro se hizo la siquiente consulta SQL $tipo= "application/vnd.openxmlformats-officedocument.word";
$tipo1="application/vnd.openxmlformats-officedocument.pres"; $tipo2="application/vnd.openxmlformats-officedocument.spre";
$tipo3="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
// consulta para obtener todo los archivos existente en la tabla archivos
$sql1="select * from archivos where (id_usuario='".$id_usuario."') and (tipo='".$tipo."') or (tipo='".$tipo3."') or (tipo='".$tipo1."') or (tipo='".$tipo2."')";
$res_archivos=mysql_db_query($bd,$sql1,$con); $res=mysql_db_query($bd,$sql1,$con);
Imágenes: en esta carpeta se mostraran los archivos con extensión .jpg y png. Consulta SQL para lograr obtener archivos solo de este tipo:
$tipo_imagen= "image/jpeg"; $tipo_imagen2="image/png";
// consulta para obtener todos los archivos existente en la tabla archivos
$sql_imagenes="select * from archivos where (id_usuario='".$id_usuario."')and (tipo='".$tipo_imagen."') or (tipo='".$tipo_imagen2."')";
$res_imagenes=mysql_db_query($bd,$sql_imagenes,$con);
Música: y en esta carpeta archivos con extensión .mp3 y .wma. su consulta SQL es la siguiente:
$tipo_audio= "audio/mp3";
21
// consulta para obtener todo los archivos existente en la tabla papelera
$sql1_audio="select * from archivos where (id_usuario='".$id_usuario."')and (tipo='".$tipo_audio."') or (tipo='".$tipo_audio2."')";
$res_audio=mysql_db_query($bd,$sql1_audio,$con);
Papelera
En el portal se encuentra una papelera de reciclaje, el usuario podrá eliminar sus archivos, esto quiere decir, que solo lo moverá a la papelera de reciclaje y no lo eliminara por completo, el objetivo de esto, es que si el usuario lo desea podrá recuperar ese archivo, o si prefiere podrá eliminarlo de la papelera de reciclaje pero ya no podrá recuperar el archivo.
Este proceso se desarrolló de la siguiente manera:
Primeramente el usuario selecciona el archivo que desea eliminar o bien mandar a la papelera de reciclaje, al seleccionarlo mandar el id del archivo por el método GET mediante una función JavaScript que se llama eliminar al archivo donde se procesara esta acción que se llama papelera.php. En este archivo, primeramente se recupera ese id para así obtener todos los datos de ese archivo. El siguiente paso se inserta todos estos datos a la tabla papelera que se encuentra en la base de datos. Para que eliminemos estos datos de la tabla Archivos.
Dentro de la papelera el usuario tendrá dos opciones sobre este archivo la opción reestablecer el archivo o eliminar por completo este archivo.
Para reestablecer archivo mandamos el id de este archivo por medio de una función en JavaScript hacia el archivo procesar_reestablecer.php donde será procesada esta acción. Obtenemos los datos de este archivo y lo movemos a la tabla Archivos. Y se eliminan estos datos de la tabla papelera.
22 Figura 4 formulario editar archivo
sirve para eliminar el archivo del servidor. Al haber eliminado este archivo del servidor, también procedemos a liminar el los datos de este archivo que tenemos en la base de datos. Después de realizar este proceso mandara al usuario a su portal.
Editar nombre de archivo
Editar un nombre de archivo será una de las tareas que el usuario podrá realizar. Cuando el usuario desee hacer esta acción, elegirá primeramente que archivo desea editar, al elegir se mandara por el método GET el id del archivo al archivo editar.php en este archivo se encuentra un formulario en donde aparecerá el nombre que tiene su archivo el cual podrá editar.
Dentro de este formulario también creamos campos input de forma invisible que se son type="hidden" para mandar la información de este archivo y asi recuperarlos en el proceso Cuando el usuario presione el botón editar, esta acción se enviara al archivo modicar.php donde se procesara la información. Recuperamos todos los datos que llegan del formulario y con la siguiente consulta SQL editamos los datos en la tabla Archivos.
$sql= "update archivos set archivos='".$_POST['nombre']."', id_usuario='".$_POST['id_usuario']."', tamano='".$_POST['tamano']."', direccion= '".$_POST["direccion"]."', tipo='".$_POST['tipo']."', nombre_servidor='".$_POST["nombre_servidor"]."', ext='".$_POST["ext"]."' Where id_archivo=".$_POST["id_archivo"]."
23 Figura 5 formulario compartir Compartir archivos
Compartir archivos es otra de las actividades dentro de esta plataforma que el usuario podrá realizar, trate de hacer el desarrollo, de una manera más práctica. El proceso es el siguiente
El usuario podrá realizar esta tarea de dos formas, la primera opción es la siguiente: Lo primero que tendrá que hacer es seleccionar el archivo que desea compartir, para asegurarse, le aparece un alert preguntándole si realmente quiere compartir el archivo que está seleccionando, si acepta se le re direccionara a un formulario donde únicamente se le pedirá el correo electrónico de la persona con la que desea compartir el archivo, algo muy importante que se le pedirá al usuario es que el correo electrónico con el que desee compartir tiene que estar registrado en esta plataforma.
Agenda
24
Figura 6 formulario para agregar contactos
Como podemos apreciar en la figura para que el usuario pueda agregar un contacto tendrá que introducir cuatro datos del contacto:
Nombres: este dato es importante, cuando el usuario cada vez que entre a su agenda, solo vera este dato.
Apellidos: este dato es opcional.
Correo electrónico: este es un dato importante, ya que como mencionamos en una sección anterior, cada vez que se desee compartir un archivo el usuario podrá ir a su agenda donde podrá seleccionar el contacto con el que desee compartir, y si desea compartir con este contacto, este correo electrónico tendrá que estar registrado en la plataforma.
Teléfono: este dato es opcional.
Toda esta información se almacenera dentro de la tabla contactos en la base de datos.
25 Figura 7 validación de formulario
Figura 8 formulario editar contacto
26 Figura 9 Agenda
Figura 10 formulario para crear carpeta
Y la segunda función que podrá realizar es eliminar un contacto que se procesara en el archivo procesar_eliminarcontacto.php
En esta imagen apreciamos la agenda donde el usuario podrá guardar sus contactos.
Crear carpetas
27
Cuando se dé clic en el botón crear carpeta este formulario se procesara en el archivo procesar_crearcarpeta.php. Dentro de este archivo rescatamos las variables que mandamos en el formulario por el método post, también realizamos una consulta SQL para rescatar el id del usuario que está creando esta carpeta, al momento de crear la carpeta le insertamos un id único a la carpeta que lo identificara. Y por último realizamos una consulta SQL para insertar los datos en la tabla carpetas. Estas son los variables que se insertan:
Id_carpeta
Nombre de la carpeta: nombre que el usuario le asigna a la carpeta.
Id_parents: este id es para saber si esta carpeta es creada dentro de otra carpeta. Id_usuario: el id del usuario que ha creado la carpeta.
Id_unico: un id para identificar a la carpeta creada. Id_carpetaraiz: el nivel donde ha sido creada esta carpeta.
Después de que la carpeta ha sido creada aparecerá en el portal del usuario, y dentro de esta carpeta podrá guardar los archivos que desee.
Configuración
El usuario podrá ver cierta información dentro de esta sección. Cuando entra en las configuraciones existe tres áreas: perfil, espacio y seguridad.
Perfil: en esta área el usuario podrá ver su información personal, su nombre, apellido y correo electrónico, también tendrá la oportunidad de seleccionar una foto para mostrar en su perfil.
Espacio: en esta sección se le informara al usuario cuanto espacio está utilizando y cuanto le queda libre.
28 Figura 11 Perfil
Figura 12 Buscador Búsqueda
29 Descargas
30 CAPITULO III
Conclusiones
Durante el proceso de desarrollo nos encontramos con muchos retos y problemas, algunos pude solucionarlos investigando en diferentes plataformas de apoyo, algunos problemas lo solucione con ayuda de mi asesor. Durante el avance del proceso también fuimos añadiendo algunas funciones necesarias para el buen funcionamiento de la plataforma.
Finalizando esta etapa del proyecto el usuario puede realizar algunas tareas dentro de esta plataforma:
Registrase. Iniciar sesión. Subir archivos. Descargar archivos. Editar
Compartir Eliminar
Recuperar archivos Agregar contactos. Editar contactos Crear carpetas
31 Ilustración 4 Portal
Además de las funciones la plataforma cuenta con un buscador de archivos, una agenda donde podrá hacer algunas funciones. La plataforma clasifica los archivos por su tipo en carpetas virtuales. Además el usuario podrá crear su perfil. Saber cuánto espacio está utilizando.
Utilizando esta herramienta el usuario podrá alojar sus archivos en esta plataforma y poder realizar las funciones mencionada.
Trabajos futuros
Entre los futuros aportes para el desarrollo completo de esta plataforma son los siguientes:
Poder abrir el archivo desde la plataforma. Subir más de un archivo a la vez.
32
Elaborar un plan de implementación para el proyecto.
El nuevo plan de estudios de la Universidad de Montemorelos, anima a los estudiantes a dominar competencias que le ayudaran en su vida profesional, es por ellos que decidí desarrollar este proyecto, para entrar en el mundo del desarrollo y la programación.
BIBLIOGRAFÍA
Andrew Whitaker, M. S. (2002). Denali: : Lightweight virtua machines for distributed and networked aplicattions. .
Goldberg, R. P. ( June 1974.). A survey of virtual machine. Goldberg., G. J. ( 1974.). Gerald J. Popek and Robert P. Goldberg. Marchionni, E. A. (n.d.). Virtualización con VMware.