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