martes, 7 de mayo de 2019

S4. Actividad 2. Delimitación del tema y plan de investigación



Identificación del Problema

      El desarrollo de sistemas, aplicaciones y la programación en diferentes lenguajes es una de las bases de la carrera de Ing. en Desarrollo de Sistemas. Es necesario que un aspirante a esta carrera tenga conocimiento mínimo de dos de los lenguajes más usados actualmente, ya que estos son solicitados por particulares o grandes empresas que necesitan soluciones a medida o programadores con amplios conocimientos y experiencia para resolver sus problemas internos. Uno de los lenguajes de programación que hoy en día es muy usado y solicitado en proyecto científicos y grandes empresas de internet, es Python, este lenguaje de sintaxis sencilla y fácil de leer se puede utilizar para desarrollar scripts muy sencillos de sumas y restas, funciones para calcular llaves criptográficas, automatizar tareas en entornos linux, o crear servidores virtuales pequeños o de gran escala.
      Como programador es necesario tener conocimiento de un lenguaje de programación en varios lenguajes, algunos puede ser muy difíciles de aprender y se debe tener constante práctica para no perder el ritmo y otros muy sencillos de leer que facilitan resolver los problemas desde lo más sencillo hasta lo más completo y robusto en sistemas de seguridad informática.


Planteamiento del Problema

      La tecnología avanza cada día a una velocidad muy rápida, tanto en software como en hardware, la actualización y mejoramiento continuo del hardware (distribución en masa de procesadores más veloces en móviles y computadoras portátiles) de dispositivos eletrónicos personales los hace más rápidos, capaces de accesar a internet (alámbrico o inalámbrico) y esto tiene como consecuencia que los usuarios consuman grandes cantidades de datos; ya sea texto, imágenes, sonido, video o transmisiones en vivo (streaming) en diversas aplicaciones. Esta nueva manera de consumir información a cualquier hora del día, hace necesario un desarrollo rápido, eficaz y de calidad, de aplicaciones para dispositivos móviles y principalmente de servidores virtuales ya que son los que se encargan de proveer, de forma casi instantanea y sin interrupciones, toda la información que el usuario solicite a cualquier hora desde cualquier dispositivo electrónico (teléfono inteligente, tableta o computadora) desde el que este conectado, en cualquier parte del mundo. Para resolver este problema es necesario crear más servidores en entornos virtuales de forma más rápida, sencilla y de calidad que puedan satisfacer la gran demanda de plataformas que sean capaces de estar trabajando en linea sin descansar. Realizar los servidores virtuales requiere de un gran conocimiento especializado y experiencia no sólo en programación tambien en la configuración del servidor, redes y programación backend y frontend. Por eso es necesario un lenguaje de programación para crear servidores virtuales que sea fácil de aprender y usar, que no complique la expansión del proyecto cuando este se vuelva cada vez más grande. Un sistema operativo estable con un entorno gráfico amigable y sencillo, con una consola de comandos con comandos sencillos, faciles de leer e instalar. El sistema operativo debe ser capaz de manejar de forma eficaz el o los lenguaje de programacion requeridos para el desarrollo y ejecución del servidor virtual básico y ver los resultados en un navegador web de forma local. 
      El sistema operativo que se utilizará para este proyecto será una distribución de Ubuntu con un entorno gráfico de escritorio Xfce que es liviano y fácil de usar. El diseño intuitivo del gestor sistema que no genera problemas a la hora de instalar programas, actualizar el sistema o ejecutar comandos.
         El lenguaje de programación que se utilizará será Python en la versión 3.6, elegido por su sintaxis fácil de leer, aprender y ejecutar. Apesar de ser tan sencillo es muy poderoso y utilizado ampliamente en muchos proyectos científicos en análisis de grandes cantidades de datos. Se instalará el framework Flask (desarrollado en Python) en su versión 1.0.2, que es utilizado para creación de servidores de forma fácil y rápida, el servidor puede ejecutarse de forma local o puede ser desplegado en servidores virtuales como Heroku. Las distribuciones de linux ya tienen preinstalado una versión actualizada de Python esto hace más rápido el desarrollo y ejecución de scripts en este sistema.


Tema
Desarrollo de servidor web virtual básico mediante un framework fácil de aprender, usar e instalar; ejecutado de forma local en una distrubución linux.


Objetivo General
Desarrollar un servidor virtual sencillo con un framework en Python, corriendo de forma local en linux.


Objetivos Específicos
Instalación de Flask mediante comandos en consola en una distribución de Ubuntu.
Instalación y configuración de la paquetería básica para ejecutar el servidor virtual.
Desarrollo del frontend y backend de la página principal.


Justificación

      La creación de un servidor virtual con un framework desarrollado en Python, en este caso Flask, es de gran ayuda para el programador encargado de desarrollar el sitio completo, ya que la sintaxis de programación que Flask hereda de Python, hace que sea muy fácil de aprender, leer, desarrollar y sea flexible a la hora de escribir pocas lineas o grandes cantidades de código en proyectos más especializados. En proyectos muy grandes la facilidad de lectura del código es muy importate, esto hace más fácil y rápida la tediosa tarea de buscar, entre cientos de lineas de código, los errores que ocurran al momento de hacer las pruebas o en un entorno real de producción con el sitio en linea y muchos usuarios usando el sistema al mismo tiempo. Esto hace que encontrar y corregir los errores sea más eficiente. En el caso de una caída del sitio completo el programador encargado del sitio se tardería menos tiempo en volver a ponerlo en línea.
      Con Flask se pueden crear desde servidores virtuales muy sencillos con apenas siete lineas de código (Miguel G., 2014, Flask Web Development: Developing Web Applications with Python, O'Reilly Media, Inc., p.10), que muestren en una página web algunas lineas de texto, un servidor con las caracteristicas más básicas con páginas web estáticas (utilizando sólo HTML) hasta un servidor muy robusto con todos los requerimientos y librerías necesarias para que muestre páginas web responsivas con HTLM, CSS y Javascript, descargar o subir todo tipo de archivos, proveer rutas especiales para servir APIs en formato Json, hacer streaming y utilizar WebSockets.


Plan de Trabajo








No hay comentarios.:

Publicar un comentario