desarrollo de un sistema de informaciÓn basado en …

87
DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN CLOUD COMPUTING PARA LA GESTIÓN DE ACTIVOS DE LA UNIVERSIDAD PILOTO DE COLOMBIA JUAN FELIPE GALICIA CERVERA CESAR FREDDY RICAURTE LÓPEZ UNIVERSIDAD PILOTO DE COLOMBIA FACULTAD DE INGENIERÍAS INGENIERÍA DE SISTEMAS BOGOTÁ 2020

Upload: others

Post on 01-Jul-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN CLOUD

COMPUTING PARA LA GESTIÓN DE ACTIVOS DE LA UNIVERSIDAD PILOTO

DE COLOMBIA

JUAN FELIPE GALICIA CERVERA

CESAR FREDDY RICAURTE LÓPEZ

UNIVERSIDAD PILOTO DE COLOMBIA

FACULTAD DE INGENIERÍAS

INGENIERÍA DE SISTEMAS

BOGOTÁ

2020

Page 2: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN CLOUD

COMPUTING PARA LA GESTIÓN DE ACTIVOS DE LA UNIVERSIDAD PILOTO

DE COLOMBIA

JUAN FELIPE GALICIA CERVERA

CESAR FREDDY RICAURTE LÓPEZ

PROYECTO DE GRADO

DIRECTOR

LUIS FELIPE HERRERA QUINTERO Ph.D

GESTOR DE PROYECTO

NELLY STELLA BELTRAN

UNIVERSIDAD PILOTO DE COLOMBIA

FACULTAD DE INGENIERÍAS

INGENIERÍA DE SISTEMAS

BOGOTA

2020

Page 3: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

1

Nota de aceptación:

Aprobado por el comité de grado en

cumplimiento de los requisitos exigidos por

la Facultad de Ingeniería y la Universidad

Piloto de Colombia para Optar al título de

ingenieros de Sistemas.

_______________________

Luis Felipe Herrera Quintero

Director

_______________________

Nelly Stella Beltran Cely

Revisor Metodológico

Bogotá D.C. 23 de noviembre de 2020

Page 4: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

2

A mis padres Fredy y Lida, quienes con su amor y esfuerzo me han

permitido llegar a cumplir hoy un sueño más, gracias por inculcar en mí el

ejemplo de esfuerzo y valentía, de no temer a las adversidades porque Dios

y ellos están conmigo siempre.

Cesar Freddy Ricaurte López

Page 5: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

3

A Dios, por darme la oportunidad de ser mejor cada día, a mis padres y hermanos por ser mi apoyo y fortaleza,

a los docentes que me han formado. Juan Felipe Galicia Cervera

Page 6: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

4

AGRADECIMIENTOS

Agradecemos en primer lugar a Dios por darnos la fortaleza y perseverancia a lo

largo de nuestras vidas, que nos permiten llegar a este punto, A nuestros padres,

hermanos y familiares, por confiar en nuestras capacidades, demostrarnos su

constante apoyo y sobre todo por darnos las enseñanzas que nos permiten ser los

que somos ahora.

En segundo lugar, agradecemos a nuestro director de proyecto, el doctor Luis

Felipe Herrera Quintero, por cada una de sus enseñanzas, paciencia y apoyo a lo

largo del desarrollo de este trabajo. Por introducirnos en nuevos puntos de vista y

enfoques de nuestra carrera y desarrollo como futuros ingenieros de sistemas. Así

mismo le agradecemos por su constante interés, consejos y para alcanzar nuevas

metas en el ámbito profesional.

A nuestros maestros, que aportaron todo su conocimiento a lo largo de nuestra

formación como ingenieros de sistemas. En especial queremos agradecer al

colega Javier Beltran y a la ingeniera Nelly Beltran por impulsarnos, ser un apoyo

constante y ayudarnos a ser mejores personas y profesionales.

Finalmente, agradecemos a nuestra alma mater, la Universidad Piloto de

Colombia, por permitir nuestra formación como profesionales íntegros, guiados

bajo su doctrina, de la cual no solo nos llevamos educación de alta calidad sino

también, grandes y gratas experiencias.

A todos, gracias totales.

Page 7: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

5

CONTENIDO

Pág.

INTRODUCCIÓN 12

1. PLANTEAMIENTO DEL PROBLEMA 14 2. OBJETIVOS 15 2.1 OBJETIVO GENERAL 15 2.2. OBJETIVOS ESPECÍFICOS 15 3. MARCO REFERENCIAL 16 3.1. MARCO CONCEPTUAL 16 3.1.1. TECNOLOGÍA 16 3.1.2. COMPUTACIÓN EN LA NUBE 17 3.2. MARCO TEÓRICO 17 3.2.1. CLOUD COMPUTING 17 3.2.1.1. CARACTERÍSTICAS DE LA COMPUTACIÓN EN LA NUBE 18 3.2.1.2. MODELOS DE SERVICIO DE COMPUTACIÓN EN LA NUBE 18 3.2.2. BASES DE DATOS 19 3.2.2.1. TIPOS DE BASES DE DATOS 20 3.2.3. PROGRAMACIÓN WEB 20

3.2.3.1. FRONT-END 20

3.2.3.2. BACK-END 21

3.2.4. METODOLOGÍA SCRUM 21

3.2.5. INVESTIGACIÓN CORRELACIONAL 21

3.3. MARCO HISTÓRICO 22

3.4. MARCO TECNOLÓGICO 24

4. ANTECEDENTES Y JUSTIFICACION 26

5. ALCANCE Y LIMITACIONES 27

6. METODOLOGÍA 28

6.1 METODOLOGÍA POR OBJETIVOS 28

7. INSTALACIONES, EQUIPO REQUERIDO Y PRESUPUESTO 30

8. ESTADO DEL ARTE 31

8.1 SOLUCIONES EXISTENTES 31

8.1.1 RAPPI 31

8.1.2 MICROSOFT OFFICE 365 31

8.1.3 ODOO 32

8.2. MICROSERVICIOS 32

9. ANÁLISIS DEL PROCESO ACTUAL 35

9.1 PROCESO DE RESERVA PARA DOCENTES Y ADMINISTRATIVOS35

9.2 PROCESO DE RESERVA PARA ESTUDIANTES 36

10. PROPUESTA 37

10.1. DESCRIPCIÓN GENERAL DEL SISTEMA 37

Page 8: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

6

10.1.1 PRIMER OBJETIVO 38

10.1.2 SEGUNDO OBJETIVO 38

10.1.3 TERCER OBJETIVO 39

10.1.4 CUARTO OBJETIVO 40

10.1.5 QUINTO OBJETIVO 41

11. REQUERIMIENTOS FUNCIONALES DEL SISTEMA 42

11.1 AUTENTICACIÓN Y REGISTRO DE USUARIOS 42

11.2 SEGURIDAD DE LA APLICACIÓN 42

11.3 RESTABLECER USUARIOS O CONTRASEÑAS 43

11.4 CAMBIO DE CONTRASEÑA 43

11.5 BÚSQUEDA DE PRODUCTOS 43

11.6 MODIFICACIÓN DE PRODUCTOS 44

11.7 AGREGAR PRODUCTO 44

11.8 ELIMINAR PRODUCTO 44

11.9 RESERVA DE PRODUCTO 44

11.10 VALIDACIÓN DE RESERVAS 45

11.11 VALIDACIÓN DE DEVOLUCIONES 45

11.12 VISUALIZACIÓN ANALÍTICA 45

11.13 GENERACIÓN DE REPORTES 45

11.14 CAMBIO DE TIEMPO DE UN PRODUCTO 46

11.15 CAMBIO DE ROL POR PRODUCTO 46

11.16 AGREGAR Y VINCULAR ARTÍCULO 46

11.17 CAMBIAR ESTADO DE ARTÍCULO 46

11.18 BÚSQUEDA DE ARTÍCULO 47

11.19 ELMINAR ATÍCULO 47

11.20 LISTAR ARTÍCULOS 47

12. REQUERIMIENTOS NO FUNCIONALES DEL SISTEMA 48

12.1 SEGURIDAD 48

12.2 EXPERIENCIA DE USUARIO 48

12.3 DESEMPEÑO 48

12.4 MODULARIDAD 49

12.5 MANTENIMIENTO 49

12.6 MULTAS 49

12.7 NOTIFICACIONES VIA SMS 49

13. IMPLEMENTACIÓN Y DISEÑO DE LA BASE DE DATOS 50

13.1 ARQUITECTURA 50

13.2 POSTGRESQL 51

13.3 ATOMICIDAD 52

13.4 VISTAS 53

Page 9: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

7

13.5 BASE DE DATOS SCHEDULE PILOT 53

13.6 DESCCRIPCIÓN DE VISTAS 54

14. DISEÑO DEL SISTEMA 56

14.1 DESARROLLO DE LA APLICACIÓN 57

14.1.1 GLOBAL ERROR HANDLER SERVICE 58

14.1.2 MESSAGES SERVICE 58

14.1.3 SCROLL APP SERVICE 59

14.1.4 HTTP INTERCEPTOR SERVICE 59

14.1.5 CONSTANTS 59

14.1.6 MODELS 59

14.1.7 GUARDS 59

14.1.8 APP ROUTING MODULE 59

14.2 SUBSISTEMAS 59

14.2.1 SEGURIDAD DE LA APLICACIÓN 60

14.2.2 RESERVAS DE ACTIVOS 62

14.2.3 INVENTARIO 63

14.2.4 DATA ANALYTICS 64

15. INFRAESTRUCTURA EN LA NUBE 65

15.1 SERVIDOR 65

15.2 DOMINIO Y SERVICIO DNS 65

15.3 BACKUP 65

15.4 FIREWALL 65

15.5 SERVICIOS INDIRECTOS 66

16. IMPLEMENTACIÓN DE SERVICIOS CLOUD 68

16.1 DIGITAL OCEAN 68

16.1.2 DROPLET 68

16.1.3 IP PUBLICA FIJA 69

16.1.4 ASIGNACIÓN DE DOMINIO Y ADMINISTRACIÓN DNS 69

16.1.5 BACKUP TIPO SNAPSHOT 70

16.1.6 MONITOREO 71

16.1.7 ESTADÍSTICAS 72

16.1.8 SERVICIO DE CONSOLA VIRTUAL Y CONTRASEÑA 73

16.1.9 ENERGÍA Y SISTEMA DE APAGADO 73

16.1.10 FIREWALL 74

16.1.11 REDUNDANCIA 74

16.1.12 ESCALABILIDAD 75

17. APLICACIÓN WEB E INTERFAZ MOVIL 76

17.1 APLICACIÓN WEB 77

17.2 INTERFAZ MOVIL 77

Page 10: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

8

18. CONCLUSIONES 80

LISTA DE FIGURAS

Pág.

Figura 1. Ruta de aplicación 16

Figura 2. Línea de tiempo 23

Figura 3. Presupuesto 30

Figura 4. Propuesta 37

Figura 5. Interfaz pgAdmin 52

Figura 6. Descripción de tablas 54

Figura 7. Descripción de vistas 54

Figura 8. Detalle vistas 55

Figura 9. Diseño 56

Figura 10. Flujo del proceso 57

Figura 11. Diagrama de servicios 58

Figura 12. Subsistemas 60

Figura 13. Hash de información 61

Figura 14. Token de seguridad 62

Figura 15. Estructura de la nube 66

Figura 16. Cloud Craft 67

Figura 17. Droplets 69

Figura 18. DNS 70

Figura 19. Dominio 70

Figura 20. Droplet Backups 71

Figura 21. Monitores 72

Figura 22. Rendimiento CPU virtual 73

Figura 23. Recursos Escalables 75

Figura 24. Arquitectura Web 77

Figura 25. Pantalla de inicio web 78

Figura 26. Pantalla de inicio responsive 79

Page 11: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

9

LISTA DE ANEXOS

Anexo A. Casos de uso Schedule Pilot

Anexo B. Esquema de actividades

Anexo C. Arquitectura de la base de datos

Anexo D. Descripción lógica de las tablas y demás estructuras

Anexo E. BD SCHE PIL5

Anexo F. Cronograma de actividades

Anexo G. Video prueba aplicación usuario externo

Anexo H. Recursos

Anexo I. Diagramas casos de uso

Anexo J. Estructura de aplicación

Anexo K. Estructura de servidor

Anexo L. Estructura del sistema operativo

Anexo M. Estructura Nube

Anexo N. Pruebas unitarias – Schedule Pilot

Page 12: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

10

GLOSARIO

ANGULAR: Es un marco de diseño de aplicaciones y una plataforma de desarrollo para crear aplicaciones de una sola página eficientes y sofisticadas.

BACKUP: Un backup es una copia de seguridad a mayor o menor escala. Puede ser una versión reciente de la información contenida en todos los equipos de una compañía o equipos personales, o puede tratarse de servidores completos con ingentes cantidades de datos.

DATACENTER: Un datacenter es una infraestructura física o virtual utilizada para alojar sistemas informáticos que puedan procesar, servir o almacenar datos. Los Datacenter dan servicio de almacenamiento de datos, respaldo o backup, recuperación de datos y gestión de la información para empresas.

DROPLET: Los Droplets son una plataforma de cómputo escalable con capacidades adicionales de almacenamiento, seguridad y monitoreo para ejecutar fácilmente aplicaciones de producción.

FRAMEWORK: En el desarrollo de software, un entorno de trabajo es una estructura conceptual y tecnológica de asistencia definida, normalmente, con artefactos o módulos concretos de software, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.

HASH: Una función criptográfica hash- usualmente conocida como “hash”- es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.

JAVA: Es un lenguaje de programación y una plataforma informática propiedad de Sun Microsystems. Java es rápido, seguro y fiable. Java está en portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta Internet.

NODE JS: Es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación JavaScript.

NPM: De sus siglas NPM (Node Package Manager) es un gestor de paquetes desarrollado en su totalidad bajo el lenguaje JavaScript por Isaac Schlueter, a través del cual podemos obtener cualquier librería con tan solo una sencilla línea de código, lo cual permitirá agregar dependencias de forma simple, distribuir paquetes

Page 13: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

11

y administrar eficazmente tanto los módulos como el proyecto a desarrollar en general.

SNAPSHOT: Las snapshot, también denominadas instantáneas de volumen o VSS (volumen snapshot service) son un elemento de seguridad informática complementarias a las copias de seguridad o backups.

SPRING BOOT: Es una herramienta que nace con la finalidad de simplificar el desarrollo de aplicaciones basadas en el framework Spring Core. Spring Boot busca que el desarrollador solo se centre en el desarrollo de la solución, olvidándose por completo de la compleja configuración que actualmente tiene Spring Core para poder funcionar.

TOKEN DE SEGURIDAD: En sistemas computacionales un token viene siendo una palabra clave alfanumérica o compuesta de solo números. El token tiene la función de identificar al usuario que lo porta.

Page 14: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

12

INTRODUCCIÓN

Se sabe que la fibra óptica es un regalo de la naturaleza, esto se debe a su

capacidad de transportar grandes volúmenes de información a velocidades difíciles

de alcanzar incluso para las máquinas más sofisticadas que alguna vez haya creado

el hombre (hasta el momento). También es sabido que la información es uno de los

activos más codiciados por el hombre. Es por esto, que este proyecto plantea un

sistema de manejo, control y gestión de información que arroja constantemente

cifras y variables que pueden cambiar esquemas de negocio. Desde un atributo de

variable que entregue un “ahorro mínimo” en un determinado período de tiempo,

hasta una potencialización de este mismo atributo, es decir, trabajar con un

determinado volumen de datos que genere otros cientos de miles de datos,

dependiendo de lo robusta que sea la base de datos, logrando así el principal

objetivo de las empresas hoy en día: optimizar procesos mediante principios de

eficiencia y gestión de recursos, todo esto tomando decisiones basadas en datos.

Este esquema de optimización de procesos, mediante el análisis de la información

trae consigo diferentes escenarios en los que se puede cimentar un ecosistema

regido desde unos y ceros hasta los más complejos algoritmos de codificación y

compresión de información. Los imparables e implacables desarrollos tecnológicos

tienen la capacidad de programar obsolescencia o simplemente imponerla para

fondos y formas de sistemas de gestión de información y de procesos en cualquier

ámbito, ya sea industrial, corporativo, académico, entre otros. 1

En un ámbito académico, específicamente en la Universidad Piloto de Colombia, se

presenta una oportunidad de mejora que no se puede dejar pasar. Esta Universidad,

que desde sus orígenes siempre ha sido reconocida por la fuerte e influyente

participación de sus estudiantes en diferentes asuntos, incluso los administrativos,

hoy cuenta con una interesante propuesta que tiene en su mira un proceso interno.

Esta propuesta busca hacer una transición de lo cotidiano hacia lo revolucionario,

sobre cómo administrar de una manera más eficiente los activos o ítems

tecnológicos que proporciona el ente educativo, tomando como punto de partida y

de toma de decisiones a todos los usuarios del proceso, desde estudiantes y

maestros, hasta el personal administrativo del área de Audiovisuales, quienes

podrán distribuir mejor el tiempo de su jornada laboral y de esta manera, quizás,

iniciar una política de cambio y mejora de otros procesos internos.

1 J. A. Díaz and D. Pérez, “Optimización de los niveles de inventario en una cadena de suministro,” Ing. Ind., vol. XXXIII, no. 2, pp. 126–132, 2012, [Online]. Available: http://scielo.sld.cu/pdf/rii/v33n2/rii04212.pdf.

Page 15: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

13

Este documento es un documento que revoluciona a la Universidad Piloto de

Colombia, pues en este se expone de manera elocuente, coherente y entendible la

automatización de uno de los procesos internos administrativos más importantes de

la Universidad, con el que no solo se logra el principio de optimización de recursos

(sabiendo que estos pueden ser de tiempo, económicos y humanos) sino también

la evasión del error humano y la disponibilidad permanente de los actores de este.

Por medio de los fundamentos de la programación orientada a objetos, la lógica de

bases de datos relacionales y el desarrollo de páginas web que contienen

aplicaciones que juegan con información dentro de sí, se llega al objetivo planteado

incluso desde el título de este documento y se trata de hacer una integración de

estos tres componentes en la nube, es decir, almacenar toda nuestra data en un

sitio que siempre garantiza disponibilidad de la información, su seguridad e igual de

importante, su integridad y confiabilidad.

Page 16: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

14

1. PLANTEAMIENTO DEL PROBLEMA

En este proyecto de grado se pretende realizar la implementación de un sistema de

administración y gestión de los activos tecnológicos del área de audiovisuales de la

Universidad Piloto de Colombia (UPC). En la edad contemporánea se considera que

los procesos internos en una compañía, como lo es la UPC, deben ser en la medida

de lo posible, automáticos. Esto implica optimizar todos los recursos que se

involucran, incluso los recursos humanos, con el fin de mejorar los tiempos de

respuesta. Es necesario mejorar el sistema actual de gestión de activos antes de

que pueda llegar tan siquiera al borde de la obsolescencia tecnológica, pues, este

proceso consiste en la gestión manual de plantillas físicas que el usuario debe

imprimir y diligenciar. Tras este paso, debe entregar el formato en las instalaciones

para dar continuidad al proceso; esto demora los tiempos de respuesta y no permite

conocer con facilidad los datos actuales, de los cuales también depende el proceso.

Además, el proceso de actualización de la información no es inmediato ni

automático, sino más bien manual, lo que da cabida a posibles errores humanos.

Actualmente, cuando se hace la solicitud de un equipo informático se deben llenar

formatos en Excel, con más de tres o cuatro días de anticipación para dar tiempo al

sistema y/o personal de realizar los respectivos subprocesos, esto quiere decir que

en un caso de índole extraordinaria, el usuario probablemente no podrá hacer uso

de los activos, es decir, el sistema actual no tiene un nivel de contingencia para

eventos imprevistos, lo cual se puede traducir como un riesgo y en el contexto

tecnológico actual, se podría inferir que este riesgo no es aceptable2. La UPC

requiere automatizar sus procesos para ahorrar costos, tiempos, obtener más

eficacia y estar al nivel de las grandes industrias y corporaciones. La automatización

se vuelve más relevante cuando el proceso en referencia es un proceso diario, como

lo es en este caso. El Cloud Computing, como casa matriz y como herramienta de

desarrollo, dará lugar a la implementación de un sistema para la UPC que integrará

bases de datos y tecnologías de desarrollo web para lograr aprovechar esta

oportunidad de mejora.

2 W. D. Díaz Ariza, “Computación En La Nube Y Su Seguridad,” Univ. Pilot. Colomb., 2015, [Online]. Available: http://repository.unipiloto.edu.co/bitstream/handle/20.500.12277/2785/Trabajo de grado.pdf?sequence=1.

Page 17: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

15

2. OBJETIVOS

2.1 OBJETIVO GENERAL

Desarrollar una propuesta de un sistema de información para los activos

tecnológicos del área de audiovisuales de la UPC, el cual busca mejorar y

automatizar la administración de dichos activos a partir de la transición del modelo

actual a la integración de un aplicativo Web y una BDD alojados en la nube (Cloud

Computing).

2.2 OBJETIVOS ESPECÍFICOS

• Diseñar una solución tecnológica para el sistema de manejo de activos físicos

del área de audiovisuales, mediante el análisis y requerimientos que el proceso

demanda para la satisfacción de los usuarios.

• Desarrollar un aplicativo Web que permita la reserva de los activos con el previo

conocimiento de su estado y disponibilidad. La autenticación e inicio de sesión

serán por medio de credenciales institucionales.

• Implementar una base de datos relacional que permita almacenar información

de los activos, del personal que tiene acceso a estos, y transacciones de entrada

y salida.

• Desplegar en la nube los servidores que requiere el aplicativo y las bases de

datos con sus respectivos DNS, plan de Backup y configuraciones de seguridad.

• Validar la integración final de las aplicaciones, funcionabilidad, pruebas de

software y cumplimiento de requerimientos.

Page 18: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

16

3. MARCO REFERENCIAL

3.1 MARCO CONCEPTUAL

En el presente trabajo se plantea una trazabilidad: después de analizar el

funcionamiento actual del proceso de solicitud y prestación de elementos

tecnológicos referentes al área de audiovisuales, se procederá a crear una solución

a partir de los requerimientos que se levanten con el cliente. Esta solución tendrá

un esquema tecnológico en el cual se integrarán tres componentes para obtener

como resultado un instrumento que permita la gestión de estos activos tomando en

cuenta los tipos de usuarios que tienen acceso a los activos y también lo que sucede

con los activos, lo cual implica el conocimiento de su estado en tiempo real.

FIGURA 1. RUTA DE APLICACIÓN

Fuente: Autores.

3.1.1 Tecnología

Tecnología “es el conjunto ordenado de todos los conocimientos usados en la

elaboración, asignación y uso de bienes y servicios. Por lo tanto, cubre además del

conocimiento científico y tecnológico obtenido por investigación y desarrollo,

también el derivado de experiencias empíricas, la tradición, habilidades manuales,

intuiciones, copia, adaptación, etc.”. Jorge A. Sabato & Michael Mackenzie, 1982.

Page 19: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

17

“Tecnología es la utilización sistemática del conocimiento científico a tareas

prácticas o cotidianas dentro de un determinado entorno. Su conclusión o resultado

final es que toma un problema grande y se divide en problemas pequeños para

brindar soluciones más fáciles y precisas.”. J.K. Galbrait, 1984.

“La Tecnología, como rama del saber, está conformada por el compuesto de

conocimientos y competencias necesarias en el uso, perfeccionamiento e

introducción de las técnicas. Y una Técnica, está hecha por un compuesto de rutinas

que deben ser consecuentemente realizadas para la hechura o consecución de un

objetivo.”. Neyes, 1985.

3.1.2 Computación en la nube

Según el NIST, la computación en la nube: “Es un modelo tecnológico que permite

el acceso ubicuo, adaptado y bajo demanda en red a u conjunto compartido de

recursos de computación configurables compartidos que pueden ser rápidamente

aprovisionados y liberados con un esfuerzo de gestión reducido o interacción

mínima con el proveedor del servicio”.

Definición de “Cloud Computing” del RAD Lab de la Universidad de Berkeley: “Se

refiere tanto a las aplicaciones entregadas como servicio a través de internet, como

el hardware y el software de los centros de datos que proporcionan estos servicios”.

3.2 MARCO TEÓRICO

3.2.1 Cloud computing

De una manera simple, la computación en la nube (Cloud Computing) es una

tecnología que permite acceso remoto a softwares, almacenamiento de archivos y

procesamiento de datos por medio de Internet, siendo así, una alternativa a la

ejecución en una computadora personal o servidor local. En el modelo de nube, no

hay necesidad de instalar aplicaciones localmente en computadoras.

La computación en la nube ofrece a sus clientes (personas y empresas) la

capacidad de un contenedor de recursos informáticos que cuenta con constante

mantenimiento es seguro, de fácil acceso y bajo demanda, es decir, se hace cómo

y cuando el usuario lo pida. La computación en la nube también utiliza una capa de

red para conectar los dispositivos de punto periférico de los usuarios, es decir,

dispositivos con conexión a internet como computadores, teléfonos inteligentes y

Page 20: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

18

dispositivos portátiles, a recursos centralizados en el data center. Antiguamente,

antes del cloud computing, la ejecución de un software por parte de las empresas

que ofrecían servicios solo era posible si estas podían suplir el mantenimiento a la

infraestructura y sus servidores. Además, como ya se sabe, una diferencia relevante

con el pasado es que la necesidad de contar con un equipo profesional en

tecnologías de la información que tuviera la capacidad de contener los riesgos del

sistema y a su vez realizar las actualizaciones y mantenimientos a la infraestructura,

desaparece. Pues en este nuevo concepto llamado “computación en la nube” se ha

buscado, como pilar, la optimización de estos recursos3.

3.2.1.1 Características de la computación en la nube.

• Bajo demanda: Aunque siempre es bueno contar con personal especializado en

tecnologías de la información en una empresa, en la computación en la nube

desaparece esta necesidad y además se tiene la capacidad de computación

necesaria cómo y cuándo se necesita.

• Multiplataforma: Basta tener conexión a Internet para acceder al servicio en un

PC, tablet, o smartphone.

• Recursos en pool: Esto hace referencia al modelo de multiusuario, es decir, se

permiten diferentes usuarios simultáneos en la plataforma.

• Flexibilidad rápida: La experiencia del usuario está basada en la demanda y

utilización del servicio.

3.2.1.2 Modelos de servicio de computación en la nube.

• SaaS: El modelo SaaS – Software como Servicio de computación en la nube –

se centra en tornar más fácil el acceso a la aplicación de software para el usuario

por medio de una interfaz de navegador o de programa. Con este modelo, la red

subyacente, el sistema operacional y los recursos funcionan en los bastidores.

Ésta es una aplicación muy popular en la computación en la nube, se estima que

el 59% del total de las cargas de trabajo en la nube va a ser de SaaS hasta 2018.

• PaaS: El modelo PaaS – Plataforma como Servicio – puede aprovechar los

beneficios de la computación en la nube mientras mantiene la libertad de

desarrollar aplicaciones personalizadas del software. Los usuarios pueden

acceder a PaaS de la misma manera que se hace con el SaaS. El proveedor es

responsable por el mantenimiento del sistema operacional, de la red, de los

servidores y de la seguridad. Puede haber, también, abstracciones en niveles de

3 Mell, P. and Grance, T. The NIST Definition of Cloud Computing. Gaithersburg: National Institute of Standards and Technology, 2011.2. Salesforce.

Page 21: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

19

aplicaciones que aceleren el desarrollo de las aplicaciones y la implementación

de varios dispositivos. Con estas abstracciones en el nivel de aplicaciones

ausentes, una plataforma tradicional que se ejecuta en un grupo de servidores

virtuales con ubicación remota producirá determinados beneficios de capacidad

flexible, pero no se puede esperar que acelere la innovación de la empresa.

• IaaS: El modelo IaaS – Infraestructura como Servicio – va un paso adelante en

la abstracción, proporcionándoles a las organizaciones la capacidad de

aprovechar recursos brutos del servidor mientras el restante de la administración

de la plataforma y del software es de responsabilidad de la empresa. Eso permite

mayor capacidad sin preocupación con requisitos de hardware. 4

3.2.2 Bases de datos

Se llama base de datos a un conjunto de información perteneciente a un mismo

contexto, ordenada de modo sistemático para su posterior recuperación, análisis y/o

transmisión. Existen actualmente muchas formas de bases de datos, que van desde

una biblioteca hasta los vastos conjuntos de datos de usuarios de una empresa de

telecomunicaciones. Las bases de datos son el producto de la necesidad humana

de almacenar la información, es decir, de preservarla contra el tiempo y el deterioro,

para poder acudir a ella posteriormente. En ese sentido, la aparición de la

electrónica y la computación brindó el elemento digital indispensable para

almacenar enormes cantidades de datos en espacios físicos limitados, gracias a su

conversión en señales eléctricas o magnéticas5.

El manejo de las bases de datos se lleva mediante sistemas de gestión (llamados

DBMS por sus siglas en inglés: Database Management Systems o Sistemas de

Gestión de Bases de Datos), actualmente digitales y automatizados, que permiten

el almacenamiento ordenado y la rápida recuperación de la información. En esta

tecnología se halla el principio mismo de la informática. En la conformación de una

base de datos se pueden seguir diferentes modelos y paradigmas, cada uno dotado

de características, ventajas y dificultades, haciendo énfasis en su estructura

organizacional, su jerarquía, su capacidad de transmisión o de interrelación, etc.

Esto se conoce como modelos de base de datos y permite el diseño y la

4 Salesforce (Ene 2017) ¿Qué es Cloud Computing? May 10, 2020 Disponible en: https://www.salesforce.com/mx/cloud-computing/ 5 N. Herrera, D. Ruano, P. Azar, D. Welch, A. De Battista, and A. Pascal, “Indexando Bases de Datos no Estructurados.”

Page 22: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

20

implementación de algoritmos y otros mecanismos lógicos de gestión, según sea el

caso específico.

3.2.2.1 Tipos de bases de datos

• Bases de datos estáticas: Típicas de la inteligencia empresarial y otras áreas de

análisis histórico, son bases de datos de sólo lectura, de las cuales se puede

extraer información, pero no modificar la ya existente.

• Bases de datos dinámicas: Aparte de las operaciones básicas de consulta, estas

bases de datos manejan procesos de actualización, reorganización, añadidura y

borrado de información.

• Bibliográficas: Contienen diverso material de lectura (libros, revistas, etc.)

ordenado a partir de información clave como son los datos del autor, del editor,

del año de aparición, del área temática o del título del libro, entre otras muchas

posibilidades.

• De texto completo: Se manejan con textos históricos o documentales, cuya

preservación debe ser a todo nivel y se consideran fuentes primarias.

• Directorios: Listados enormes de datos personalizados o de direcciones de

correo electrónico, números telefónicos, etc. Las empresas de servicios manejan

enormes directorios clientelares, por ejemplo.

• Especializadas: Bases de datos de información hiperespecializada o técnica,

pensadas a partir de las necesidades puntuales de un público determinado que

consume dicha información.6

3.2.3 Programación web

Por desarrollo web se entienden todas las disciplinas involucradas en la creación de

sitios web, o aplicaciones que se ejecutan en la web y a las que se accede mediante

el navegador. Aunque desarrollo web puede ser un ámbito muy específico del

desarrollo en general, el ecosistema de tecnologías, lenguajes y herramientas

disponibles para la creación web es enorme. Para poder clasificar o dividir las áreas

del desarrollo web se han acuñado un par de términos:

3.2.3.1 Front-end. Es el desarrollo web en el ámbito del cliente, es decir, en el

navegador web. Las tecnologías y lenguajes principales son HTML, CSS y

Javascript.

6 María Estela Raffino (Feb 14, 2020) Base de datos. May 3, 2020 Disponible en: https://concepto.de/base-de-datos/. Consultado: 18 de mayo de 2020.

Page 23: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

21

3.2.3.2 Back-end. Es el desarrollo web en el ámbito del servidor, donde las

tecnologías y lenguajes son directamente relacionadas con el sistema operativo del

servidor de la página web. Lenguajes y tecnologías habituales para Back-end son

PHP, NodeJS, Python, .NET, e incluye también las bases de datos, como MySQL,

PostgreSQL, SQL Server, entre otros.

Dentro del desarrollo web hay profesionales de muchos tipos, especializados en

áreas diversas, como pueden ser los "front-end developers" o "back-end

developers". Incluso es habitual que una persona tenga conocimientos de ambas

áreas, profesionales a los que se les suele llamar "full stack developer". Sin

embargo, debido a la amplitud de herramientas y tecnologías es normal que los

profesionales se especialicen en alguna cosa en concreto, como la maquetación, el

desarrollo en uno u otro framework Javascript, o en determinados lenguajes y bases

de datos de backend. 7

3.2.4 Metodología SCRUM.

Scrum es un marco de trabajo (Framework) para la gestión y desarrollo de software

basado en un proceso iterativo e incremental utilizado en entornos de desarrollo ágil

de software. Se fundamenta en la teoría empírica de control de procesos. Esto

significa que el resultado de los procesos no está definido a priori y que el control

del proceso se realiza mediante inspección y adaptación del proceso en base a los

resultados obtenidos. Además, se fomenta la transparencia para deducir las

mejoras de forma compartida8.

3.2.5 Investigación correlacional.

Un estudio correlacional determina si dos variables están correlacionadas o no. Esto

significa analizar si un aumento o disminución en una variable coincide con un

aumento o disminución en la otra variable. Es muy importante tener en cuenta que

correlación no implica causalidad.9

7 escuela.it (Ene 2019). Desarrollo Web. May 1, 2020 Obtenido de Escuela.IT: https://escuela.it/materias/desarrollo-web. 8 León Javier Jesús, “App Web Scrum,” 2014, [Online]. Available: https://upcommons.upc.edu/bitstream/handle/2099.1/23350/Resum.pdf. 9 Siddharth Kalla (Jun 16, 2011). Estudio correlacional. May 13, 2020 Obtenido de Explorable.com: https://explorable.com/es/estudio-correlacional.

Page 24: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

22

3.3 MARCO HISTÓRICO

A lo largo de la historia han sucedido muchas y diferentes tipos de innovaciones

tecnológicas y siempre han tenido como objetivo implícito cambiar y mejorar la vida

del hombre. Si los objetos de estudio son el transporte y las comunicaciones,

rápidamente se concluye que aplicar tecnología en estos ámbitos desarrollan el

comercio y permiten la distribución de materias primas que antiguamente solo

estaban disponibles en sus regiones de origen. Además, la globalización de la

información por parte del internet ha permitido que la adquisición y uso de

información no solamente atenúen fronteras, sino que también sean un pilar para

entender mejor el mundo.

La Universidad Piloto de Colombia nació hace alrededor de 55 años, principalmente

por una iniciativa de estudiantes de Arquitectura que, inconformes con las políticas

de formación académica del sistema universitario de la época, decidieron crear su

propia institución.

En un contexto histórico de la universidad en el que los estudiantes, en ocasiones,

han tomado la iniciativa para mejorar la calidad de la educación que se les brinda,

hoy, unos estudiantes de la facultad de Ingeniería de Sistemas han tomado la

iniciativa de aportar a uno de los procesos internos de la universidad. Una idea que

ha sido avalada en el pasado, por los dueños del proceso. Es por eso por lo que

este proyecto toma fuerza, pues hay una necesidad de automatizar como lo hacen

las grandes industrias.

En la historia actual, ya se cuenta con una Escuela de ingenierías TIC, esto implica

un salto lógico hacia la tecnología aplicada en las aulas de clase, es decir, se

enmarca, normaliza y estandariza la utilización de diversas tecnologías como

herramientas de enseñanza y aprendizaje. La universidad implementó dichas

tecnologías para el uso del personal no solo docente y estudiantil, sino también

administrativo.

Page 25: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

23

FIGURA 2. LINEA DE TIEMPO

Fuente: Autores

Pero como la historia de la UPC está directamente relacionada con la historia

mundial y todo lo que su globalización acarrea, entonces se empieza a correr un

riesgo: la obsolescencia indirectamente programada. Esto significa que ya no

solamente basta con poseer equipos de última generación, sino que también es

necesario aplicar procesos y tecnologías que pueden percibirse opuestas a la

corriente tradicional. Cuando aparece un sistema que tiene como requisito mínimo

suplir las mismas funciones del anterior, pero con la diferencia de que lo hace con

una menor inversión de recursos, el anterior queda obsoleto ipso facto.

La compañía Salesforce fue uno de los pioneros de la computación en nube, fue en

1999 que se introdujo por primera vez el concepto de entrega de aplicaciones

empresariales a través de un sitio web. Posteriormente, Amazon lanzó Amazon Web

Services en 2002. Luego, motivado y en busca de la explotación de un mercado que

posteriormente sería uno de los más importantes en el mundo empresarial, Google

Docs en 2006 presentó el Cloud Computing como un concepto de relevancia

mundial. 2006 también vio la introducción de 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.

Page 26: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

24

Todo esto fue secundado por una colaboración de toda la industria en 2007 entre

Google, IBM y una serie de universidades de los Estados Unidos. Luego vino

Eucalyptus en 2008, como la primera plataforma de código abierto compatible con

el API-AWS para el despliegue de clouds privados, seguido por OpenNebula, el

primer software de código abierto para la implementación de nubes privadas e

híbridas. Microsoft entraría hasta el 2009 con el lanzamiento de Windows Azure.

Luego en 2010 proliferaron servicios en distintas capas de servicio: Cliente,

Aplicación, Plataforma, Infraestructura y Servidor. 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 se usaba un computador.10

3.4 MARCO TECNOLÓGICO

Actualmente, la humanidad vive una gran revolución de la información sin darse

cuenta y sin conocer totalmente la tecnología que le rodea. Los cambios que surgen

día a día hacen necesaria una constante actualización en conocimientos

relacionados con las tecnologías emergentes. Las personas, estudiantes y

profesionales, están en la obligación de conocer y estar al día en cuanto a las

tecnologías emergentes pues si realmente se quiere competir el mercado laboral

del futuro, incluso en el mercado actual, es fundamental estar actualizado.

Hoy por hoy, optimizar los procesos de negocio consiste en automatizar al máximo

todos los pasos que conforman el ciclo de producción, distribución, venta, atención

al cliente, marketing, publicidad, transporte, etc., de un producto o de un servicio.

Como seres que están en constante evolución e investigación de procesos y nuevas

tecnologías, se debe analizar tendencias tecnológicas para mejorar la

competitividad del mundo en general.

Dicha mejora en la productividad se genera reduciendo los tiempos en la ejecución

de procesos, eliminando o sustituyendo total o parcialmente tareas dentro de esos

procesos o incorporando nuevas funcionalidades que aportan valor al proceso ya

existente. Con este objetivo, se construyen softwares adoptando las metodologías

ágiles que permiten adaptar la forma de trabajo a las condiciones del proyecto,

consiguiendo flexibilidad y respuesta inmediata para amoldar el proyecto y su

10 Visión Industrial (Ene 2016) ¿Qué es la Tecnología? May 9, 2020 Disponible en: http://www.visionindustrial.com.mx/industria/la-tecnica/que-es-la-tecnologia

Page 27: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

25

desarrollo a las circunstancias específicas que se están demandando en el entorno

con el fin de conseguir una reducción de costes de implementación y un

considerable aumento de la productividad11.

11 B. C. Pando Soto and G. D. Rodriguez Rafael, “Estado del arte de PSP y la Industria del Software,” Ind. Data, vol. 21, no. 2, p. 111, 2018, doi: 10.15381/idata.v21i2.15610.

Page 28: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

26

4. ANTECEDENTES Y JUSTIFICACIÓN

La era moderna trajo la llegada de la tecnología a las organizaciones y esta llegada

trae consigo una herramienta fuerte para reducir y aumentar la ventaja sobre la

competencia. Aunque la tecnología puede estar al alcance de todo y de todos, hay

que hacer énfasis en estar siempre lo más actualizado posible para lograr una

verdadera ventaja competitiva. El Cloud Computing es quizás el avance tecnológico

más sustancial de los últimos tiempos, permite el acceso a grandes volúmenes de

información relacionada a la actividad de la organización sin necesidad de hacer

grandes inversiones en infraestructura. El ahorro de los fondos que antiguamente

se destinaban en software, hardware, seguridad, mantenimiento, entre otros, se

vuelve relevante partiendo del principio de optimización de recursos.12

Actualmente la UPC presenta un sistema de gestión de activos físicos el cual

requiere ser actualizado y automatizado con el fin de abarcar las nuevas

necesidades de los docentes y estudiantes. El sistema actual no permite un

funcionamiento acorde a la posible necesidad que se manifiesta sin previo anuncio,

además no permite la regulación de los activos para los casos especiales que se

presenten. Tener un sistema en la nube proporciona grandes utilidades usando

modernos esquemas de seguridad que garantizan no solo la no vulneración de la

información (la seguridad informática es una de las áreas en las que más se

invierten fondos para su desarrollo), sino que también brinda esquemas de

organización de la información y esquemas que mejoran el rendimiento de un

servidor por medio de máquinas virtuales que distribuyen procesos y optimizan el

uso de memoria.

Cuando una empresa proporciona su propio software, usualmente debe ocuparse

de sus servidores. Estos servidores requieren un suministro de energía exclusivo y

piezas de reemplazo. También es necesario configurarlos y supervisarlos en caso

de que tengan problemas de rendimiento y requieran expertos de IT para

solucionarlos. Los proveedores de Cloud Computing trabajan con un presupuesto

mucho mayor debido a que necesitan garantizar la seguridad de todos los clientes.

Cada empresa obtiene beneficios del gran grupo, significando un nivel de seguridad

más elevado para todos.13

12 Karla Gonzalez (Ago 2017) Importancia de la tecnología en las organizaciones. Abr 22, 2020 Disponible en:

https://sites.google.com/site/innovadorascom/importancia-de-la-tecnologia-en-las-organizaciones. 13 Javiet Tafalla (Ago 9, 2017) Por qué Cloud Computing es útil para las empresas. Abr 27, 2020 Disponible en: https://www.hiberus.com/crecemos-contigo/cloud-computing-util-las-empresas/

Page 29: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

27

5. ALCANCE Y LIMITACIONES

En cuanto al alcance de este proyecto, se debe hacer énfasis en que algunas áreas

de la universidad tienen bajo su potestad diferentes ítems o elementos que se usan

como herramienta que estimula el aprendizaje y enseñanza de los diferentes

programas de la universidad. Este proyecto no planea tener un alcance global (toda

la universidad) debido a que el área en la que se identificó esta oportunidad de

mejora es Audiovisuales. Sin embargo, esta idea puede ser aplicada a diferentes

áreas en la universidad e incluso en diferentes entes educativos, si estos así lo

desean, pues, aunque este proyecto se enfoca en un alcance “local”, la estructura

y diseño de la solución planteada permiten escalabilidad, es decir, ajustar el

software según las necesidades de un determinado cliente, incluso si esto implica

que haya que hacer una previa definición de los demás procesos de las demás

áreas de la Universidad Piloto de Colombia.

En cuanto a las limitaciones del proyecto, se debe resaltar que, dada la situación de

emergencia global causada por la pandemia del virus Covid 19, fue difícil (aun así

se logró el objetivo), no solo la implementación del proyecto sino también a

recopilación de toda la información necesaria para solventar y definir todas las

aristas e interrogaciones que se presentaban, pues la universidad cerró y aunque

para el equipo era necesario una asistencia y rectificación constante de la

información en la que se basa el proyecto, no fue un imposible para este ya se contó

con la ayuda de diferentes líderes y voces académicas, permitiendo así alcanzar el

objetivo general.

Page 30: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

28

6. METODOLOGÍA

Tipo de investigación Correlacional: cualitativa y cuantitativa porque mientras se

hace uso de herramientas informáticas, estadísticas y matemáticas para obtener

resultados también se hace una exploración más alta del panorama en un tipo de

investigación cualitativa, pues, esta depende de la recopilación de datos verbales,

de conducta y observaciones que pueden interpretarse de una forma objetiva. Tiene

un largo alcance y por lo general ayuda determinar la raíz de un problema14. Para

conocer una descripción más detallada de las actividades que se llevan a cabo para

el cumplimiento de los objetivos, revisar el anexo B. Esquema de actividades. El

cronograma en el cual se plantean tiempos de respuesta y desarrollo para la

implementación de este proyecto se encuentra en el anexo F. Cronograma de

actividades.

6.1 METODOLOGÍA POR OBJETIVOS

El primer objetivo “Diseñar una solución tecnológica para el sistema de manejo de

activos físicos del área de audiovisuales, mediante el análisis y requerimientos que

el proceso demanda para la satisfacción de los usuarios.” se va a desarrollar por

medio de la metodología cualitativa, la cual permite conocer una valoración de los

usuarios del proceso actual para generar los requerimientos funcionales del

proceso.

El segundo objetivo “Desarrollar un aplicativo Web que permita la reserva de los

activos con el previo conocimiento de su estado y disponibilidad. La autenticación e

inicio de sesión serán por medio de credenciales institucionales.” se va a desarrollar

por medio de la metodología cuantitativa ya que el desarrollo de una aplicación

implica exactitud en la metodología y en los datos que se usan para construirla.

El tercer objetivo “Implementar una base de datos relacional que permita almacenar

información de los activos, del personal que tiene acceso a estos, y transacciones

de entrada y salida.” se debe desarrollar por medio de la metodología cuantitativa,

pues en la implementación de la una base de datos el uso de números y cifras son

imperativos.

El cuarto objetivo “Desplegar en la nube los servidores que requiere el aplicativo y

la base de datos con sus respectivos DNS, plan de Backup y configuraciones de

seguridad.” se va a desarrollar, inicialmente por medio de la metodología cualitativa,

14 Siddharth Kalla (Jun 16, 2011). Estudio correlacional. May 13, 2020 Obtenido de Explorable.com: https://explorable.com/es/estudio-correlacional.

Page 31: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

29

ya que escoger una nube para la implementación del proyecto se va a basar en los

parámetros de calidad y usabilidad de estas, posteriormente se procede con el

método cuantitativo para la integración de los diferentes servicios en uno solo.

El quinto objetivo “Validar la integración final de las aplicaciones, funcionabilidad,

pruebas de software, cumplimiento de requerimientos y puesta en marcha de la

solución.” se va a desarrollar de manera cualitativa ya que se va a hacer una

valoración del resultado final con respecto a los objetivos planteados en el proyecto.

Page 32: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

30

7. INSTALACIONES, EQUIPO REQUERIDO Y PRESUPUESTO

En la siguiente figura se especifican los costos de las instalaciones de software para

el despliegue e implementación de la aplicación a nivel de servidor y de máquina

virtual alojada en la nube DigitalOcean, también se especifica el equipo requerido y

las características de los servidores y la capacidad de las máquinas virtuales que

se alquilan. Al final, sale una proyección de costos a un año, esta proyección puede

variar y desde un punto de vista en el que la universidad decide implementar este

sistema no solo para el área de audiovisuales sino también para otras áreas que

también son candidatas de aplicación de esta solución, se puede podría inferir que

roza en lo económico teniendo en cuenta costos de otras nubes como Azure, AWS,

entre otros. Esta tabla se encuentra en el Anexo H. Recursos.

FIGURA 3. PRESUPUESTO

Fuente: Autores.

Page 33: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

31

8. ESTADO DEL ARTE

8.1 SOLUCIONES EXISTENTES

Después de examinar la solución planteada y en búsqueda de soluciones a

problemas similares, se encontraron las siguientes aplicaciones que de alguna

manera reflejan y dan una guía sobre cómo es el deber ser de este proyecto:

8.1.1 Rappi: Es una aplicación web y móvil basada en el “delivery” de comida,

mercado y farmacia. Esta aplicación ofrece productos en un catálogo web

ofreciendo no solo variedad en productos y servicios sino también en las diferentes

modalidades de pago con el fin de ser lo más amigable posible para el usuario final.

Rappi es una app que cuenta con servicio de solicitud de productos, similar a la

solución planteada, pero una de las grandes diferencias de Schedule Pilot (el

nombre del producto resultante de este proyecto) con Rappi es que Rappi no lleva

un control de oferta de los productos que exponen, ya que esta responsabilidad se

la dejan al usuario de la aplicación, lo cual en ocasiones genera problemas de

entrega con el usuario final, adicionalmente, Rappi negocia con sus clientes un

porcentaje de las ventas que puede llegar hasta el 5% más el valor de la carga

tributaria15.

Una de las diferencias, y quizás la más significativa con Rappi es que el Software

ShedulePilot es una herramienta gratuita, lleva control e inventario de salidas,

entradas y almacén. Además de conocer el estado previo del producto, lo cual evita

inconvenientes con el usuario final y a su vez permite un control más preciso.

8.1.2 Microsoft Office 365: el conjunto de Office 365, siendo una de las

multinacionales más poderosas del mundo, ha aumentado sus ventas de manera

exponencial de tal forma que, sus herramientas son usadas por un gran número de

empresas del ámbito nacional e internacional, sus herramientas son útiles para el

control de inventario, manejo de información, organización y demás usos, pero aún

en medio de la grandeza, Microsoft no está exento de tener debilidades: una de las

desventajas es la gran variedad de herramientas, lo cual trae implícita la poca

experiencia de usuario que tienen las mismas, de entre otras razones, esto se deriva

en que el manejar las herramientas del producto Office 365 requiere de

15 J. RODRIGUEZ HIGUERAS and N. MANTILLA AGREDO, “MERCADEO DIGITAL Caso: RAPPI,” 2017. [Online]. Available: https://doi.org/10.1016/j.tmaid.2020.101607%0Ahttps://doi.org/10.1016/j.ijsu.2020.02.034%0Ahttps://onlinelibrary.wiley.com/doi/abs/10.1111/cjag.12228%0Ahttps://doi.org/10.1016/j.ssci.2020.104773%0Ahttps://doi.org/10.1016/j.jinf.2020.04.011%0Ahttps://doi.o.

Page 34: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

32

entrenamiento y capacitaciones, razón por la cual, a la hora de implementar nuevas

herramientas o actualizaciones de las mismas, el usuario no se siente cómodo por

la gran cantidad de información que debe absorber16.

La diferencia fundamental de Schedule Pilot contra Microsoft Office 365 es que el

Software Schedule Pilot ofrece integración de servicios y experiencia de usuario

tanto para el usuario administrador como para el usuario final, de tal forma que se

pueda llevar a cabo todo el proceso en una sola pantalla, además de la

automatización de muchos servicios esenciales como la copia de seguridad y el

mantenimiento de la base de datos, razón por la cual los usuarios no deben

preocuparse por ello.

8.1.3 Odoo: es una reconocida aplicación para el sistema de inventarios, abarca

todos los procesos de inventario y optimización de base de datos, permite la

comunicación entre los diferentes tipos de usuarios del sistema, actualiza en tiempo

real la información entrante y saliente, contiene diferentes módulos para ejecutar la

cadena de suministros, fabricación, documentación y reportes17.

Diferencias contra Odoo: el Software Shedule Pilot no solo ofrece el servicio de

inventario como una de sus características, ofrece personalización y escalabilidad

para un proceso único de una corporación, es una herramienta web implementada

en la nube, lo cual le da un toque de seguridad, redundancia, alta disponibilidad,

control y economía, además de ser una herramienta gratuita cuyo costo de

sostenibilidad es muy económico.

8.2 Microservicios

Son la nueva herramienta utilizada por diferentes entornos “Cloud” (nubes), de tal

manera que pueden ser integrados pequeños servicios para el desarrollo y

constitución de software de modo que cada uno de estos servicios funcionen de

manera independiente, comunicándose por medio de un API.

16 A. Skendzic and B. Kovacic, "Microsoft Office 365 - cloud in business environment," 2012 Proceedings of the 35th International Convention MIPRO, Opatija, 2012, pp. 1434-1439. 17 Y. Pavón González, L. Puente Baró, M. Infante Abreu, and J. Blanco González, “ERP Odoo configuration experience for small business. Successful case in tostonet,” Ingeniare, vol. 26, no. 3, pp. 514–527, 2018, doi: 10.4067/S0718-33052018000300514.

Page 35: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

33

Esta herramienta o pequeño servicio como suele llamarse busca que los

desarrolladores consumidores de nube puedan reducir el tiempo de desarrollo y

lograr una mayor escalabilidad y aún más importante, disponibilidad de dichos

servicios, ya que en caso de que uno de ellos llegase a fallar, no se vea afectada

toda la aplicación, es decir, si se daña algún modelo de la aplicación, esta no deja

de funcionar.

Los microservicios son una estructura que no es monolítica, por lo cual cada uno de

ellos requiere su base de datos independiente, esto puede conllevar a que el costo

de mantenimiento sea bastante alto, y su integración requiera de un esfuerzo

adicional, pero estos aspectos son variables, ya que dependen del tipo de

organización en la que se aplica el proyecto18.

Una empresa con un gran número de desarrolladores podría adoptar la estructura

de microservicios, que al ser un poco más compleja que la estructura monolítica, su

escalabilidad y alta disponibilidad son mucho mejores y más recomendadas para su

aplicación, de tal manera que la aplicación o sistema en general se pueda distribuir

en diversos componentes, en donde cada uno ellos expondrá una funcionalidad

específica, esto genera que se modularice el sistema por medio de los diferentes

servicios, se debe realizar el análisis de las conexiones directas e indirectas y ser

muy minuciosos para evitar la falla en el funcionamiento de uno de estos servicios,

debido al modelo de la empresa, se puede hacer que el desarrollo sea ágil y rápido.

En el caso de una empresa pequeña o de un proyecto en el cual se cuente con

pocos desarrolladores, este esquema de microservicios puede tornarse un poco

más complejo, ya que el hecho de que los servicios sean desarrollos

independientes, sus bases de datos independientes y su versionado sea

independiente, causa que el despliegue de este sistema suba su nivel de

complejidad. En cambio, en un sistema monolítico, la herramienta de microservicios

solicita que se tenga un equipo de trabajo para cada uno de sus servicios ya que no

tenerlo iría contra las buenas prácticas de implementación19.

18 A. Balalaie, A. Heydarnoori, and P. Jamshidi, “Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture,” IEEE Softw., vol. 33, no. 3, pp. 42–52, 2016, doi: 10.1109/MS.2016.64. 19 L. De Lauretis, “From monolithic architecture to microservices architecture,” Proc. - 2019 IEEE 30th Int. Symp. Softw. Reliab. Eng. Work. ISSREW 2019, pp. 93–96, 2019, doi: 10.1109/ISSREW.2019.00050.

Page 36: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

34

Es importante aclarar que los microservicios son la pauta hacia el futuro, pero no

hay que dejar de lado que estos se aplican dependiendo al tamaño y las

funcionalidades del proyecto o la criticidad de la aplicación en curso, los

microservicios pueden ser más costosos cuando se implementan en proyectos

pequeños o con pocas funcionalidades, generalmente se implementan para

proyectos ambiciosos o de grandes compañías con el fin de lograr una mayor

escalabilidad y disponibilidad de su producto, cabe resaltar que uno de los aspectos

más importantes de los microservicios es tener la replicación de los mismos en caso

de que el servicio principal falle, ya que aunque falle el servicio y si el mismo es

crucial en la aplicación o el Core de la misma, se estaría perdiendo su

funcionabilidad20.

Basados en los criterios expuestos anteriormente, se puede concluir que los

microservicios poseen una característica fundamental: autonomía, debido a que

cada microservicio es independiente de los demás desde el momento en que se

desarrolla hasta la puesta en producción, estos son especializados porque se

enfocan en un objetivo como tal y su función es única.

Además de sus características o propiedades, los microservicios ofrecen diferentes

beneficios como lo es la agilidad, porque trabajan de manera independiente y

rápida, son escalables ya que su independencia hace más sencilla el cálculo de los

recursos necesarios para la operabilidad del servicio, es más sencilla la

implementación del cambio, ya que si este sale mal podemos revertir o reconstruir

únicamente el microservicio afectado, estos microservicios pueden ser utilizables21.

Entre los microservicios más comunes se encuentran contenedores, base de datos

no SQL y modelos relacionales, arquitectos de software, redes, balanceadores de

carga, servicios de me mensajería entre muchos otros, entre las nubes que tienen

más adelantando este concepto son AWS, Google y Azure, aún faltan que todas las

nubes implementen este concepto como herramientas, porque el concepto como tal

se puede implementar arquitectónicamente, pero puede salir mucho más costoso22.

20 D. Namiot and M. Sneps-Sneppe, “‘On microservices Architecture’ International journal of open information technologies.,” Int. J. Open Inf. Technol., vol. 2, no. 9, pp. 24–27, 2014, [Online]. Available: http://injoit.org/index.php/j1/article/view/139. 21 nM. Rahman and J. Gao, “A reusable automated acceptance testing architecture for microservices in behavior-driven development,” Proc. - 9th IEEE Int. Symp. Serv. Syst. Eng. IEEE SOSE 2015, vol. 30, pp. 321–325, 2015, doi: 10.1109/SOSE.2015.55. 22 NEBEL, Andrés. Arquitectura de microservicios para plataformas de integración. [en línea]. Tesis de maestría. Universidad de la República (Uruguay). Facultad de Ingeniería. 2019. [Fecha consulta: 8 de noviembre 2020].

Page 37: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

35

9.ANÁLISIS DEL PROCESO ACTUAL

En este capítulo se explicará como el área de audiovisuales de la universidad Piloto de Colombia lleva a cabo el proceso de reserva y préstamo de los activos físicos que manejan, de tal forma que demos detalle al proceso y los puntos claves en donde se evidencia oportunidades de mejora y de transformación digital.

Listado de Activos físicos Disponible de la universidad.:

• Computador de escritorio.

• Computador Portátil.

• Video beam.

• Mouse.

• Teclado.

• Cable VGA

• Cable HDMI

• Convertidor HDMI

• Conector RCA

• Parlantes.

• Auriculares.

• Cable de Poder

• Cable de RED

• Cámara Web

9.1 Proceso de reserva para Docentes y Administrativos.

El punto de partida para la reserva de equipos para docentes y maestros empieza en la etapa de diligenciamiento de formulario en Excel “el mismo se encuentra cargado en los anexos”, en el cual indican los elementos que requieren durante la semana y en los horarios que requieren los mismos.

Luego de superar la primera etapa los docentes o administrativos envían un correo electrónico al área de registro y control con el formato de Excel diligenciado, en el área una persona de registro y control se encarga de pasar el Excel del usuario a un Excel en donde se tienen todas las reservaciones previas de la semana.

En el siguiente paso una persona de registro y control académico “Personal encargado del área de audiovisuales” lee el Excel correspondiente a la hora y día en el que se encuentra y empieza a organizar y alistar los equipos que deben entregar de acuerdo con la programación, la persona además verifica otro Excel en donde tienen disponible el inventario de los equipos y de ahí ejecuta la selección para entregar.

Page 38: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

36

Luego empieza a entregar equipos a cada personal de turno con el fin de que los mismo lleven el equipo hasta el docente.

• Inconvenientes que se han detectado en el proceso:

El equipo no llega en un estado óptimo, por lo cual puede afectar el desarrollo de la actividad para la cual lo solicito el docente o el administrativo, los tiempos establecidos pueden ser mejorados con el fin de ejecutar validaciones previas de los activos entregados, los activos solicitados no cumplen con las características de lo solicitado.

9.2 Proceso de Reserva para estudiantes

El proceso de reservas de estudiantes se caracteriza por ser un poco más simple, el proceso inicia con el acercamiento del estudiante al área de registro y control, el mismo solicita a la persona que se encuentre encargada de los activos el elemento que requiere solicitar, la persona le pasa un formulario en el cual diligencia datos solicitados por el área, la persona realiza búsqueda en Excel con el fin de validar si hay elementos disponibles para prestar.

Luego de la verificación y el diligenciamiento del formulario anterior, la persona entrega al estudiante el elemento requerido.

• Inconvenientes que se han detectado en el proceso:

Los estudiantes no tienen la posibilidad con antelación de realizar las reservas de los activos que requieren para sus actividades, en ocasiones debido a que no se puede reservar con anticipación no se encuentra el elemento requerido.

Page 39: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

37

10. PROPUESTA

En este capítulo se hará la presentación del diseño del proyecto orientado al desarrollo de cada objetivo, especificando las herramientas tecnológicas a usar y como estas conforman el conjunto adecuado para la ejecución y el correcto funcionamiento del proyecto, de tal forma que se ejecuten las tareas planteadas en los tiempos establecidos.

FIGURA 4. PROPUESTA

Fuente: Autores.

10.1 Descripción General del sistema

El sistema “SHEDULE PILOT”, como se nombra la aplicación, se compone de la integración del conocimiento de diferentes áreas tecnológicas planteadas en los objetivos, más el valor agregado de la aplicación de habilidades transversales que complementan el mismo, reflejando los campos del conocimiento explorados tanto en las diferentes etapas de aprendizaje como en la experiencia laboral recopilada en la trayectoria de cada integrante de este proyecto.

Según lo anterior y teniendo en cuenta las áreas de infraestructura virtual, desarrollo de software, desarrollo web, bases de datos y computación en la nube, se desarrollará el conjunto de tareas y actividades con el fin de culminar en una

Page 40: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

38

integración de tecnologías que permiten llegar a una implementación exitosa de la solución planteada.

10.1.1 Primer objetivo: Para empezar la construcción de los requerimientos que el proceso demanda, es necesario el desarrollo de una investigación, la cual va a tener como pilares esenciales entrevistas tanto al personal del área de audiovisuales, estudiantes, docentes y actores en el proceso, como una consulta detallada del proceso de inicio a fin para profesores y estudiantes, ya que se evidencia que es diferente para estos actores y adicionalmente los ítems que el área presta para una transición al dinamismo en el aprendizaje que busca estimular y facilitar la adquisición y retención de conocimiento. Tras realizar esta investigación, se logró determinar que el área cuenta con diferentes tipos de dispositivos tecnológicos y audiovisuales, entre estos, video beam, pc, ratón, etc. Se logra el objetivo de esta actividad: identificar diferentes oportunidades de mejora. A partir de estos hallazgos, se empieza a plantear una propuesta de solución y se hace real mediante la declaración de los servicios que proveerá el sistema y la determinación de las acciones que debe tomar el mismo a las diferentes entradas, esto, en el mundo del desarrollo es más conocido como requerimientos funcionales, mientras que los requerimientos no funcionales, que se enfocan más en las propiedades emergente de un sistema como lo es la fiabilidad, la respuesta en un tiempo determinado, la capacidad de almacenamiento. En ocasiones, los requerimientos no funcionales también definen restricciones de un sistema.

De la determinación de los requerimientos funcionales y no funcionales se derivan algunos subtipos de requerimientos como por ejemplos los organizacionales, de los cuales se puede determinar algunos procedimientos y políticas en la organización que pueden ser restricciones para el sistema planteado. También existen requerimientos de implementación en los que usualmente se determina el lenguaje de programación y el método o el diseño de desarrollo que se va a usar en la creación e implementación del sistema. Cuando se hizo la identificación de los requerimientos funcionales y no funcionales se tuvo en cuenta aspectos como los datos que utilizaba y producía el proceso, quien realizaba una tarea específica dentro del proceso con qué frecuencia se hacía una tarea, quien utilizaba la información que se generaba o se usaba dentro del sistema, cuál era el flujo de esta información y por supuesto, cómo organizar y estructurar esta información dentro de una base de datos.

10.1.2 Segundo objetivo: En el levantamiento de requerimientos funcionales y no funcionales que surgen a partir del cumplimiento del primer objetivo, se obtiene un principio para moldear los casos de uso y así mismo establecer las tecnologías que serán usadas en el desarrollo de este proyecto de grado. Para el back-end, se determinó que la tecnología de desarrollo Java 8 trae cambios que mejoran la manera de programar, entre estos cambios esta la posibilidad de acortar en gran medida el código de un aplicativo mediante la referenciación de métodos anónimos o métodos sin nombre lo cual disminuye los tiempos de compilación. Java es un

Page 41: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

39

lenguaje de programación muy completo y casi universal, además de ser un lenguaje estable, las aplicaciones construidas en java permiten la implementación de un sistema de seguridad más compacto. El lenguaje Java cuenta con una amplia documentación que se puede encontrar tanto en repositorios gratuitos como en la documentación del proveedor. Experiencia de usuario.

En el desarrollo del front-end se usará la tecnología Angular, esta tecnología que fue desarrollada por Google en el 2001, su mayor utilidad en la construcción de un software, es separar el front-end del back-end, evitando así la redundancia en el código y además, al basarse en el patrón MVC, optimiza los tiempos de desarrollo y brinda una estructura en la que hacer modificaciones y actualizaciones de código se vuelve una tarea menos compleja a diferencia de otros lenguajes de desarrollo web23.

Angular, integra lenguajes de desarrollo y de etiquetas, como HTML5, JavaScript y TypeScript. Al adentrarse en la construcción de un aplicativo web, se puede evidenciar que CSS (Cascading Style Sheets) logra combinar el lenguaje de etiquetado, HTML5 y los algoritmos diseñados en JavaScript en una sola hoja con estilos. Angular con basta documentación disponible en la web, permite diseñar páginas y aplicativos con una apariencia moderna y en la mayoría de los casos, amigable e intuitiva para el usuario24.

10.1.3 Tercer objetivo: El modelo de bases de datos relacional, de entre la gran variedad que existe, permite definir la estructura de datos, es decir que, cuando un usuario crea una tabla nueva en el diccionario de datos se almacena su respectivo esquema. Además, también permite otorgar derechos sobre los datos, es decir, que los usuarios ya sea por medio de roles o permisos, pueden acceder a la información con intenciones de leer, actualizar y eliminar información. Esta característica se denomina DLC (data Language Control)25.

Las bases de datos relaciones permite definir condiciones de integridad; esto quiere decir que, al imponer condiciones de integridad de datos, por ejemplo, que cada registro se pueda identificar de manera inequívoca; la misma base de datos se encargará de hacer cumplir esta condición en todo momento26.

Basado en lo anterior, se debe ajustar un motor de base de datos confiable, en este caso es PostgresSQL, una característica que hace que su uso sea masivo, es

23 J. A. Baldonedo and V. R. Montequín, “Modelo CMMI y métodos ágiles en la gestión de proyectos software,” p. 136, 2017, [Online]. Available: http://digibuo.uniovi.es/dspace/bitstream/10651/43638/3/TFMJuanAlonsoBaldonedoRUO.pdf. 24 Chris Griffith. 2017. Mobile App Development with Ionic2: Cross-Platform Apps with Ionic 2, Angular 2, and Cordova. O’Reilly Media. Retrieved from http://shop.oreilly.com/product/0636920044710.do. 25 “THE DESIGN OF THE POSTGRES RULES SYSTEM Michael Stonebraker, Eric Hanson and Chin-Heng Hong EECS Department University of California, Berkeley, Ca., 94720,” 1987. 26 M. Sullivan and M. Olson, “An index implementation supporting fast recovery for the POSTGRES storage system,” Proc. - Int. Conf. Data Eng., pp. 293–300, 1992, doi: 10.1109/icde.1992.213181.

Page 42: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

40

gratuidad de su uso, además de que este permite ser instalado en diferentes sistemas operativos, como Windows, Macintosh y Linux, este último, parte esencial de la construcción de este proyecto. Este motor de base de datos también tiene como característica que puede definir los recursos que se le asignan al mismo, lo cual permitirá usar solo lo necesario optimizando así los recursos y abriendo la puerta a la escalabilidad, en caso de ser necesaria27.

10.1.4 Cuarto Objetivo: En el mundo actual se ha vuelto indispensable el almacenamiento de la información en medios que brinden disponibilidad, seguridad y confidencialidad. Es acá en donde entra la nube como tendencia y como principal medio de servicios tecnológicos, de tal manera que se pueda acceder a dichos servicios en cualquier momento y en cualquier lugar del mundo, solamente contando con una conexión a internet, lo cual elimina la necesidad de una inversión en infraestructura física.

El primer proveedor de nube que se estudió en detalle fue Google, del cual se determina que, a pesar de brindar una compatibilidad alta en el acoplamiento de varias tecnologías de desarrollo, es una nube demasiado costosa y que, a diferencia de otras, su cualidad de escalabilidad no es tan destacable. La nube de Amazon, o Amazon Web Services que es quizás la nube más completa de todas y también es quizás la más importante en la actualidad, pues en esta se entra a hablar de un conjunto de servicios que pueden desplegarse, garantizando su funcionalidad desde la nube, reemplazando por completo aquella estructura en la que los servicios se desplegaban desde un servidor local o en entornos híbridos en los que había una coexistencia de ambos28.

El mayor rival de AWS es Azure, quien, entre todas sus ventajas cuenta con una muy importante y es su fácil acoplamiento a las aplicaciones de Microsoft, las cuales son usadas por un gran porcentaje de las empresas a nivel global. Además, también está diseñada para trabajar directorio activo y virtualización de una manera casi intuitiva para usuarios avanzados y experimentados de este tipo de tecnologías.

Mientras Amazon Web Services presenta la posibilidad de utilizar servicios ServerLess como Lambda y desplegar cualquier desarrollo de software en la nube, Microsoft Azure presenta claras ventajas en administrar nuestro directorio activo y desplegar servicios tradicionalmente on premise desde la nube con suma facilidad. ¿Cuál es mejor? ¿Qué opción conviene más? Todo depende de las necesidades que se quieren cubrir. En este caso, ninguna de estas dos nubes es conveniente debido a que su costo es elevado, pues al ser una nube diseñada para grandes

27 T. Mengistu, A. Alahmadi, A. Albuali, Y. Alsenani, and D. Che, “A ‘No Data Center’ Solution to Cloud Computing,” IEEE Int. Conf. Cloud Comput. CLOUD, vol. 2017-June, pp. 714–717, 2017, doi: 10.1109/CLOUD.2017.99. 28 M. H. Samadzadeh and H. Puripunpinyo, “Design, prototype implementation, and comparison of scalable web-push architectures on Amazon web services using the actor model,” Proc. - 25th Int. Conf. Syst. Eng. ICSEng 2017, vol. 2017-January, pp. 301–308, 2017, doi: 10.1109/ICSEng.2017.42.

Page 43: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

41

estructuras, corporaciones y sistemas robustos, es muy costosa y no es posible lograr una escalabilidad acorde a la magnitud de este proyecto, por lo tanto, no es conveniente29.

Debido a la gran cantidad de proveedores de servicios de nube, abre variedad puertas en el mercado las cuales se pueden adaptar a los diferentes tipos de soluciones planteadas dependiendo de la necesidad del usuario, es por esto que la nube de DigitalOcean, ofrece independencia, manejo de recursos, escalabilidad, copias de seguridad, una interfaz amigable con el usuario centro de datos en diferentes países y a diferencia de otros proveedores de nube reconocidos, con costos más accesibles para el usuario ordinario o proyectos sin ánimo de lucro.

10.1.5 Quinto objetivo: Mediante la metodología SCRUM, que es la más indicada para proyectos a cortos y mediano plazo, se dividirá el proyecto en 3 etapas: análisis, desarrollo y pruebas. Tras superar las etapas de análisis y desarrollo, se crean checklists como herramientas de indicadores de calidad. Es decir, se medirá la eficiencia del software mediante diferentes pruebas de código, complejidad de desarrollo y facilidad de lectura de los algoritmos. Se harán pruebas unitarias de código con la librería Junit de Java, la cual consume todos los servicios de la aplicación incluso sin necesidad de usar los tokens de seguridad y autenticación. Pruebas unitarias – Schedule Pilot. JUnit es un Framework de código abierto para automatizar pruebas tanto unitarias como de integración en los proyectos Software. El framework provee herramientas al usuario, que facilitan la tarea de realizar pruebas en su sistema y así asegurar su consistencia y funcionalidad. Para conocer y profundizar en las pruebas unitarias y en los casos de prueba, consultar en anexo N.

También se realizaron pruebas del entorno con un usuario real, se hizo una entrevista de 5 minutos en la cual el usuario manifestó conocer el proceso manual (proceso que origina la solución planteada en este documento) y realizó pruebas con la aplicación, dando su valoración y opinión de lo que sería el nuevo proceso, una vez automatizado. Además de la funcionalidad de la aplicación, el diseño de esta también fue sujeto de crítica. Este video se encuentra en el Anexo G.

29 T. Mengistu, A. Alahmadi, A. Albuali, Y. Alsenani, and D. Che, “A ‘No Data Center’ Solution to Cloud Computing,” IEEE Int. Conf. Cloud Comput. CLOUD, vol. 2017-June, pp. 714–717, 2017, doi: 10.1109/CLOUD.2017.99.

Page 44: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

42

11. REQUERIMIENTOS FUNCIONALES DEL SISTEMA

En este capítulo se encuentran los requerimientos acordados de acuerdo con el proceso de reserva de activos físicos del área de Audiovisuales, los cuales buscan proteger la integridad del proceso ejecutado, garantizar la digitalización de este y buscar mejores resultados en pro de los objetivos y alcance plasmado en el documento. En este apartado del documento se encuentran los requerimientos funcionales del sistema, más si se requiere profundizar en esta sección, revisar los casos de uso que se generan de los requerimientos, estos casos de uso se encuentran en el anexo “A. Casos de uso Schedule Pilot” y sus respectivos diagramas en el Anexo I. Diagramas Casos de uso.

11.1 Autenticación y Registro de Usuarios

La aplicación le permitirá a los estudiantes, docentes, administrativos y usuarios, registrarse teniendo en cuenta que deben contar con un correo institucional, el sistema permitirá a los usuarios anteriormente mencionados autenticarse siempre y cuando tengan una cuenta existente, activa y que cumpla los criterios de seguridad.

Este requerimiento surge de las entrevistas realizadas al área de registro y control donde se evidencia que estrictamente necesario un sistema de registro y autenticación ya que el área no cuenta con la base de datos de docentes y estudiantes de la universidad.

Este requerimiento se realizó por medio del formulario oficial del área de audiovisuales el cual se cargó a la aplicación y por medio de una validación ejecutada desde el código de la aplicación se logra dar acceso únicamente a los correos que pertenecen a los dominios de la UPC, teniendo en cuenta se anexa una llave de validación de estos correos para evitar el fraude y falsificación de estos.

11.2 Seguridad de la aplicación

La aplicación solicitará a cada usuario que se registre y se autentique. La validación del token de seguridad llegará a los correos institucionales mediante una URL de validación que cuenta con un tiempo límite de aprobación y validación, cuando el usuario supera la validación de seguridad y cumple con los requisitos dados previamente, podrá continuar con el flujo normal de la aplicación/proceso.

Es sabido que para desarrollar una aplicación que cumpla con los estándares mínimos de seguridad de la información es necesario tomar una guía, en este caso es la norma ISO 27001 y extraer de ahí la clasificación de la principales vulnerabilidades que se presentan a nivel informático, todo esto, con el fin de proveer a la UPC una herramienta que, bajo un estándar conocido, cuenta con un nivel de seguridad aceptable que a su vez mitiga el riesgo de que las vulnerabilidades ya conocidas sean explotadas, además, una de las finalidades de

Page 45: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

43

la norma es proveer apoyo a las organizaciones en cuanto a sus procesos de adquisición y desarrollo de tecnología.

11.3 Restablecer usuarios o contraseñas

La aplicación le permitirá a los usuarios recuperar su usuario y contraseña, teniendo como prerrequisito tener activa la cuenta de correo institucional, luego de esta validación el sistema le enviará al correo electrónico institucional la nueva contraseña aleatoria para que el usuario recupere su cuenta, el usuario deberá autenticarse con la nueva información brindada, el sistema le indicará por correo electrónico si la autenticación fue exitosa, de tal manera que el usuario pueda continuar con el flujo normal de la aplicación y/o proceso.

Teniendo en cuenta que existen posibilidades de olvidar tanto el usuario como la contraseña, se crea este requerimiento con el fin de que un usuario pueda recuperar su información de ingreso a la plataforma de una manera ágil y rápida sin dejar de lado los estándares de seguridad.

11.4 Cambio de contraseña

Los usuarios podrán cambiar su contraseña las veces que sea necesario, o cuando la misma haya cumplido su tiempo máximo de usabilidad determinada por el sistema, por lo cual el sistema le permitirá al usuario cambiar la contraseña siempre y cuando tenga activo su correo institucional, el usuario deberá digitar su nueva contraseña la cual debe cumplir con los requisitos mínimos de seguridad que el sistema solicita. Cuando el cambio sea exitoso, el sistema le enviará al correo electrónico institucional registrado una notificación.

Este requerimiento surge de los estándares de seguridad establecidos por la norma ISO 27001 en la cual, para evitar abrir un hueco en la seguridad de la aplicación y del sistema, es necesario un sistema seguro para el restablecimiento de contraseñas. Este apartado de la norma dice que se debe hacer un cambio de contraseña periódico con el fin de evitar que terceros logren vulnerar esta información y usarla para fines ajenos a los de la aplicación.

11.5 Búsqueda de productos

Los usuarios podrán realizar la búsqueda de los diferentes activos físicos del área de audiovisuales y dependiendo de los permisos de su rol, el sistema les mostrará la información solicitada, ya sea equipos disponibles, número de equipos, estado de los equipos. Los usuarios deberán estar autenticados previamente para poder ejecutar esta opción.

Page 46: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

44

Este requerimiento surge de las entrevistas al personal administrador del proceso, se estableció que no había un control preciso de los ítems existentes y, por lo tanto, era necesario contar con un sistema que indexe los elementos y permita acceder a sus atributos de una forma más rápida.

11.6 Modificación de productos

El sistema permitirá modificar el estado de los activos, siempre y cuando se cuente con los permisos requeridos y previamente validados por el sistema. Para esta actividad, los usuarios deben estar autenticados y escribir la observación del cambio. Este requerimiento es para los administradores de proceso y surge de la necesidad de tener un control en tiempo real del estado de los elementos informáticos.

11.7 Agregar producto

Los usuarios podrán cargar nuevos activos al sistema. El sistema validará que cuenten con el rol requerido, si el usuario cuenta con los permisos necesarios el sistema permitirá al usuario agregar el activo, solicitando el diligenciamiento de unos campos obligatorios entre los cuales se encuentra, el nombre del activo, el serial y el nivel de este; el sistema validará los datos diligenciados y mediante un mensaje de aplicación le indicará si el activo fue cargado correctamente o le indicará el error generado.

Este requerimiento se genera a raíz de las frecuentes actualizaciones tecnológicas que genera el área de Registro y control. Los administradores del proceso se encuentran en la obligación de registrar en el inventario cualquier activo nuevo que adquiera la universidad.

11.8 Eliminar producto

El sistema permitirá eliminar los activos cargados siempre y cuando el usuario cuente con los permisos requeridos y se encuentre autenticado, si el usuario supera las validaciones anteriores el sistema le solicitará que describa la causa de la eliminación y procederá a eliminar el archivo de la aplicación.

Este requerimiento se genera a raíz del posible daño de equipos o no soporte de los equipos por parte del área de Registro y control. Los administradores del proceso se encuentran en la obligación de actualizar el inventario en cuanto a los elementos que deben ser eliminados.

Page 47: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

45

11.9 Reserva de producto

Los usuarios podrán reservar los activos físicos del área de audiovisuales que se encuentren cargados en el sistema siempre y cuando se encuentre autenticados con el rol requerido, además de que el sistema validará la disponibilidad de los activos requeridos por el usuario según la fecha y hora indicados por el mismo. De ser aprobada la reserva, se notificará por medio de un mensaje el éxito de esta, pero de ser denegada, se indicará al usuario, con 1 día de anticipación a la fecha que requería los activos la causa de la negación.

En base al ciclo de vida del proceso y en comunicación con el área de registro y control, se llegó a que el requerimiento de reserva de activos es el ‘core’ de la aplicación en cual se añadió las notificaciones a usuarios con el fin de brindar una mejor atención.

11.10 Validación de reservas

El administrador y los operadores del sistema encargados de alistar y despachar los activos reservados podrán ver la lista de los activos con su respectivo serial, además de la hora y fecha en la que los demás usuarios lo requieren, el sistema les solicitará que se encuentren autenticados y con los permisos necesarios para poder observar la lista.

En base a lo acordado con el personal administrador del proceso, se acordó que la aplicación debe generar la lista de los activos reservados con la respectiva información de fechas de entregas y devolución con el fin de tener un mejor control sobre el alistamiento de activos.

11.11 Validación de devoluciones

El sistema le permitirá a los operadores o administrador de la aplicación realizar el “check” cuando los equipos prestados previamente sean devueltos por sus usuarios, de tal forma que el equipo quede nuevamente disponible en el sistema para su uso.

Por medio de la entrevista con el personal de registro y control, se expresó por parte de ellos la importancia hacer más fácil el proceso de devolución de activos, es por eso por lo que se creó un módulo en la aplicación con el fin de que tengan el control en el subproceso de devolución de activos.

11.12 Visualización de analítica

Los usuarios podrán visualizar las estadísticas de la aplicación, el sistema les solicitará a los usuarios estar previamente autenticados y contar con los permisos necesarios, luego de la validación el sistema mostrará estadísticas de la aplicación. Con el fin de evitar generar los reportes manualmente, el cliente solicitó que se

Page 48: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

46

pudieran ver los datos de uso de la aplicación referente al proceso de solicitud y reserva de activos.

11.13 Generación de reportes

La aplicación generará reportes acerca de las solicitudes, préstamos, devoluciones de los activos y multas a los usuarios, este reporte sale de información que se recopila en las bases de la aplicación. Este requerimiento surge de la necesidad de estudiar las cifras de negocio para poder tomar decisiones basadas en datos y a su vez, estudiar las oportunidades de mejora que salen del uso masivo de la aplicación.

11.14 Cambio de tiempo de un producto

El sistema permitirá, cambiar el tiempo asignado a un producto, con base a la necesidad que se presente en el área de audiovisuales, de tal manera que los productos puedan prestarse 1, 2, 3, etc.… horas o si se requieren que los productos se puedan prestar por días.

Este requerimiento surge de la necesidad, de algunos docentes y estudiantes que requieren tener productos para conferencias, trabajos finales o teletrabajo, de tal forma que el área de registro y control tenga los privilegios para escoger que productos se les puede asignar más tiempo y cuáles no.

11.15 Cambio de rol por Producto

Cada producto cuenta con una asignación de rol, lo cual le permite saber que usuarios pueden usar o no dicho producto, por lo cual el sistema permitirá que el producto pueda activar o desactivar un rol, dependiendo del análisis que ejecute el área de registro y control

Una de las principales funciones del área de audiovisuales es separa los equipos de tal forma que se identifique que equipos se le pueden prestar a los estudiantes y que equipos se le pueden presentar a los docentes y administrativos, por tal motivo para cubrir esta necesidad se incorporó en el sistema la opción mediante un Check por rol para habilitar el equipo para dicho rol.

11.16 Agregar y vincular articulo

el área de audiovisuales podrá agregar artículos al sistema y a la vez podrá asociarlos a un producto existente en el sistema, de tal forma que el artículo se sume a la lista de artículos de cada producto. Este requerimiento surge por la necesidad de tener ítems principales como los son productos con el fin de que los usuarios solo tengan que escoger el producto que desean reservar independientemente de los artículos que existan en el sistema.

Page 49: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

47

11.17 Cambiar estado de articulo

El sistema permitirá a los usuarios con permisos correspondientes cambiar el estado de los artículos, de tal forma de que pueda individualizar los activos que no deseen poner en reserva. Lo anterior debido a que, si el área de audiovisuales no quiere poner el producto en no disponible si no por el contrario un artículo en específico, pueda hacerlo sin afectar a los demás.

11.18 Búsqueda de Articulo

Los usuarios podrán realizar la búsqueda de los diferentes artículos del área de audiovisuales y dependiendo de los permisos de su rol, el sistema les mostrará la información solicitada, además de la información del articulo como su serial, descripción estado de este.

11.19 Eliminar Articulo

El sistema permitirá eliminar los artículos cargados siempre y cuando el usuario cuente con los permisos requeridos y se encuentre autenticado, si el usuario supera las validaciones anteriores el sistema le solicitará que describa la causa de la eliminación y procederá a eliminar el archivo de la aplicación, pero esta información queda almacenada en la base de datos de la aplicación por temas de auditoria.11

11.20 Listar artículos

La aplicación permitirá listar los artículos cargados en el sistema por producto, siempre y cuando el usuario cuente con los permisos adecuados para esta opción, en la lista el usuario podrá ver los artículos independientemente del estado en que se encuentren.

Page 50: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

48

12. REQUERIMIENTOS NO FUNCIONALES DEL SISTEMA

En este capítulo se visualiza aquellos aspectos que determinan el valor agregado de la aplicación, los componentes que garantizan la usabilidad de la aplicación, la experiencia de usuario la sostenibilidad y alta disponibilidad de la aplicación entre otros aspectos los cuales van de acuerdo con el alcance planteando en este documento.

12.1 Seguridad

Autenticación y registro identificado, de tal forma que el sistema sostenga las prácticas y requerimientos mínimos del proceso de reserva de activos original, además de emplear las buenas prácticas dictaminadas por la ISO 27001 con respecto al manejo de la información de la aplicación y basándose en el estándar OAuth 2.0 para la esquematización del token de seguridad, cambiando el modelo de información manejado por un solo Usuario a un modelo de roles de seguridad para las diferentes acciones e interacciones que tengan los usuarios con el sistema30.

12.2 Experiencia de Usuario

Las interfaces de usuario del aplicativo se basan en modelos exitosos de aplicaciones desplegadas en el mercado las cuales han captado millones de usuarios con buenos comentarios, esto garantiza que el sistema le brinde al usuario aspectos conocidos que le ayuden a entender al mismo el funcionamiento del aplicativo, es decir, que sea intuitivo.

El usuario podrá desplegar la aplicación web desde cualquier navegador, además de poder hacerlo desde su celular, computador o Tablet, además de que su despliegue debe ser de manera ágil con una resolución acorde a las necesidades del usuario. La aplicación busca que los usuarios puedan navegar por la misma sin necesidad de un manual o de soporte de la universidad para la utilización de este.

12.3 Desempeño

La aplicación debe garantizar al usuario disponibilidad, rendimiento y tiempos de ejecución reducidos, por lo cual se realiza un despliegue de infraestructura como servicio en la Nube, con el fin de garantizar buen procesamiento, respuesta de tiempos no mayor a 15 segundos y alta disponibilidad de la aplicación.

30 N. Técnica, “Norma Técnica Ntc-Iso/Iec Colombiana 27001,” 2006, [Online]. Available: http://intranet.bogotaturismo.gov.co/sites/intranet.bogotaturismo.gov.co/files/file/Norma. NTC-ISO-IEC 27001.pdf.

Page 51: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

49

12.4 Modularidad

La aplicación está diseñada para cumplir con la necesidad y alcance planteados en los objetivos, además de que la misma podrá incorporar nuevos módulos para procesos como los laboratorios de la universidad o adaptarse de manera ágil y sencilla a otra universidad o compañía que requiera dar solución a algún proceso de reserva e inventario, o que simplemente le parezca interesante el modelo virtual adoptado.

12.5 Mantenimiento

El sistema está basado en programación orientada objetos, garantizando que sea fácil efectuar un cambio sin dañar componentes de este, además de contar con manual de usuario y la documentación de su código, además de implementar buenas prácticas en mantenimiento de código.

12.6 Multas

Registro y control, en busca de mantener el control de su proceso, decide establecer multas para aquellos usuarios que no cumplan con los tiempos de entrega de los activos reservados. Es por eso por lo que se crea un módulo encargado de hacer seguimiento a los tiempos de los activos y, dependiendo de su comportamiento, establece multas cuyo valor está sujeto a modificación por parte de los dueños del proceso.

12.7 Notificaciones vía SMS

La aplicación tendrá un esquema de notificaciones vía SMS para informar a los usuarios acerca de los eventos que ocurren en el ciclo de vida de una solicitud. Es por esta razón, que en el formulario de registro es obligatorio colocar el número celular del usuario, con el fin de cubrir la necesidad de estudiantes y maestros.

Para el diseño y desarrollo de este requerimiento no funcional, fue necesario usar la aplicación Twilio, la cual brinda un número de teléfono para enviar mensajes a cualquier parte del mundo mediante un método de la aplicación que se encarga de validar el número destino y el token de seguridad.

Page 52: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

50

13. IMPLEMENTACIÓN Y DISEÑO DE LA BASE DE DATOS

13.1 Arquitectura

Para la implementación de este proyecto se escogió una base de datos con arquitectura relacional debido a que con este tipo es posible almacenar puntos de datos que se relacionan entre sí. Este tipo de base de datos basado en el modelo relacional permite representar información de una forma casi intuitiva en tablas. Las tablas de las bases de datos relacionales se identifican principalmente porque cada de una de sus tuplas o registros tiene un ID único, conocido como llave primaria (Primary Key). Las columnas de estas tablas contienen los atributos de los datos, que, por lo general, tienen no solo un valor determinado sino también un tipo de dato asociado, una característica que permite relacionar los datos entre sí.

De entre las características más importantes de las bases de datos relacionales, existen aquellas que cuidan directamente la integridad de la base, por ejemplo, el hecho de que en una base de datos relacional no pueda haber filas duplicadas, no solo borra la posibilidad de ingresar información errónea en la base de datos, sino que también hace los datos más precisos y accesibles.

Algunos de los fundamentos en que se basa el modelo de bases de datos relacional son el procesamiento de transacciones de comercio electrónico, hacer seguimiento de los inventarios, gestión de grandes volúmenes de información, entre otros. Una base de datos relacional es para administrar información de manera segura, íntegra, basada en normas y básicamente para cualquier tipo de información que esté relacionada entre sí. Es una arquitectura de base de datos que desde sus orígenes busca optimizar la administración de inventarios, un argumento convincente en el contexto actual.

Cuando se busca que el valor agregado de una colección de información sea su consistencia, el modelo relacional predomina, pues dada su estructura relacional permite que un dato esté siempre actualizado en todas las aplicaciones y copias de la base de datos, un ejemplo de esto es cuando una persona retira dinero en un cajero, y al verificar la transacción en su teléfono móvil puede observar que ya registra una baja de dinero correspondiente a la cantidad que retiró en el cajero. Esta destacada característica es lo que permite diferentes que diferentes instancias de una base de datos cuenten con los mismos datos, es por esto por lo que es la ideal para administrar un sistema con transacciones masivas31.

31 Oracle Corporation, “¿Qué es una base de datos relacional?”, [Online]. Available: https://www.oracle.com/co/database/what-is-a-relational-database/#:~:text=Se%20puede%20considerar%20una%20base,desde%20la%20década%20de%201970.

Page 53: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

51

13.2 PostgreSQL

El sistema operativo en el que corre este proyecto de grado es Centos 7.6 x64 de la familia Linux, por lo tanto, PostgreSQL, al ser un motor de búsqueda nativo de Linux, y al ser de licencia libre toma ventaja frente a otros motores de búsqueda, incluso a algunos de los más populares como SQL. PostgreSQL también es compatible con los siguientes sistemas operativos: FreeBSD, HP-UX, Linux, NetBSD, OpenBSD, OS X, Solaris, Unix y Windows.

La escalabilidad de PostgreSQL permite que este sea configurado en cualquier equipo dependiendo de su hardware. Esto permite que PostgreSQL se ajuste a un determinado número de CPU y de memoria disponible. Esta característica permite que múltiples solicitudes a la base de datos no alteren la estabilidad y rendimiento del sistema.

Muchos de los usuarios de PostgreSQL reconocen su sobresaliente confiabilidad y estabilidad. Pues, en sus más de 20 años de desarrollo no se han presentado caídas de la base de datos y esto se debe a su entorno de alta disponibilidad y a su característica Hot-Standby, que es por la que los clientes o usuarios pueden realizar consultas a la base aún cuando los servidores de esta se encuentran en mantenimiento, es decir, en modo de recuperación o de espera.

Las bases de PostgreSQL se pueden gestionar desde un equipo cualquiera que cuente con la herramienta que viene en el paquete de instalación de PostgreSQL, pgAdmin. Esta es una herramienta gráfica e intuitiva que no solo permite administrar la base de datos sino también ejecutar sentencias SQL, programar tareas de mantenimiento y creación de copias de seguridad32.

32 Momjian, Bruce, “PostgreSQL: Introduction and concepts / Momjian, Bruce”, Pearson Education Corporate Sa, p. cm. ISBN 0-201-70331-9.

Page 54: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

52

FIGURA 5. INTERFAZ PGADMIN

Fuente: autores.

13.3 Atomicidad

Aunque esta característica es nativa las bases de datos relacionales, en PostgreSQL destaca, por ejemplo, si existen tres instancias de una base de datos, y se requiere hacer algún tipo de modificación sobre algún registro de estos, es necesario que las tres instancias estén disponibles, si alguna de estas no está disponible, en ninguna de las otras instancias debe poder modificar el dato.

Esto es en pro de que las tres instancias estén disponibles antes de que la base sea comprometida. Esta cualidad multifacética se define como atomicidad y es un pilar de la precisión e integridad de los datos, además de garantizar el cumplimiento de políticas y reglas de administración de la información. En conclusión, la atomicidad define todos los actores en una transacción de una base de datos.

Que PostgreSQL pueda realizar consultas y ejecutar scripts de otros motores de bases de datos gracias a si estándar SQL, lo que significa que implementa la mayoría de las funcionalidades del estándar ISO/IEC 9075:2011. Aunque no PostgreSQL no cuenta con soporte en línea o soporte telefónico, se puede decir que su comunidad de usuarios es una de las más activas en el mercado, lo que facilita la consecución de soporte en sus foros oficiales33.

33 Berman HM, Olson WK, Beveridge DL, et al. The nucleic acid database. A comprehensive relational database of three-dimensional structures of nucleic acids. Biophys J. 1992;63(3):751-759. doi:10.1016/S0006-3495(92)81649-1

Page 55: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

53

13.4 Vistas

En la base de datos relacional de esta aplicación podemos encontrar diferentes vistas, antes de hablar de algunas de las vistas que han sido configuradas primero se va a definir qué son y para qué son las vistas en una base de datos. Las vistas son tablas virtuales, su contenido no está indexado en el índice de la base de datos, sino que más bien está definido por una sentencia, es decir, son tablas virtuales que surgen de sentencias o consultas creadas con el fin de optimizar tiempos de generación de vistas de información de la base de datos.

Se denominan tablas virtuales porque al igual que las tablas normales de una base de datos, las vistas también cuentan con filas y columnas. Estas filas y columnas tienen origen de las tablas desde las cuales se hacen las consultas y su concepto de tablas dinámicas es similar al de Microsoft Office Excel.

Las vistas son como filtros que se hacen en tablas subyacentes que se referencian en esta. Las vistas están pueden estar conformadas de diferentes tablas, de otras vistas de la base de datos actual o simplemente de otras vistas y otras tablas de otras bases de datos. En ocasiones, las vistas son usadas como un mecanismo de seguridad por medio del cual se le da acceso al usuario a un determinado grupo de información sin necesidad de acceder directamente a la tabla que la contiene.

13.5 Base de datos Schedule Pilot

Partiendo de la anterior definición de una base de datos relacional para este proyecto, se va a describir algunas de las tablas y vistas más importantes de la base de datos, la estructura completa de la base de datos relacional de este proyecto se podrá apreciar en el anexo C. Si se requiere información detallada de las tablas y sus atributos, consultar el diccionario de datos, este es el anexo D. Descripción lógica de las tabas y demás estructuras. Finalmente, si se desea crear la base de datos desde el script SQL, este se encuentra adjunto como el anexo E. BD SCHE PIL5. Este query se puede ejecutar y de esta manera dar origen a una base de datos exactamente igual a la implementada en este proyecto.

Page 56: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

54

FIGURA 6 DESCRIPCIÓN TABLAS.

13.6 Descripción de vistas

En esta sección se va a describir algunas de las vistas conformadas por las tablas de la base de datos del proyecto:

FIGURA 7 DESCRIPCIÓN DE VISTAS

Fuente: autores

Page 57: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

55

FIGURA 8. DETALLE VISTAS

Page 58: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

56

14. DISEÑO DEL SISTEMA

Este capítulo se enfoca en aspectos fundamentales que sitúan al diseño técnico y lógico del proyecto, con base y orientado al desarrollo de cada objetivo, teniendo en cuenta que el diseño solvente la problemática planteada en la que se evidencian las diferentes capas de diseño del proceso. El capítulo de Diseño está pensado de tal manera que se pueda abarcar todos los subsistemas que componen el proyecto, dividido en 2 fases que separan los componentes de Desarrollo e infraestructura en la nube.

FIGURA 9. DISEÑO

Fuente: Autores.

En el apartado de desarrollo se encuentran los subsistemas de aplicación tales como seguridad, reservas de activos, inventario, data analytics, desglose de subsistemas y componentes que lo conforman, análisis de los aspectos técnicos del diseño y cómo la interacción de estos subsistemas unidos compone una solución apropiada para el proyecto.

Con base al apartado de infraestructura en la nube, se mostrarán los subsistemas que conforman el servicio principal de sostenibilidad de la aplicación como lo son, servidor virtualizado en la nube, backup del servidor, dominio y administración DNS, monitoreo y gestión del servidor, seguridad local y perimetral del ambiente.

Page 59: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

57

FIGURA 10. FLUJO DEL PROCESO

Fuente: Autores.

En la figura anterior se plasma el proceso que surge tras el desarrollo de los requerimientos funcionales y no funcionales que se generaron en la primera fase de desarrollo del proyecto. A continuación, se exponen las sub-fases del nuevo sistema.

14.1 Desarrollo de la aplicación

La estructura del diseño se basa en el modelo SCRUM utilizando conceptos avanzados de POO <<programación orientada a objetos>>, en el lenguaje de programación Java (En este proyecto se usó la versión 8 de Java) para el back-end. Para la programación web el sistema está basado en Angular utilizando las herramientas NPM “Node Package Manager”, JavaScript y Git-Bash.

En la siguiente figura se evidencia el diagrama de componentes que explica los servicios y subsistemas a nivel de aplicación, la misma se divide en dos partes con el fin de realizar una explicación más completa de los componentes. Como se puede observar en la primera parte de la figura 7, se evidencia la descripción de los servicios externos al usuario que componen aspectos fundamentales de la aplicación y garantizan funciones críticas del sistema para la comprensión de este.

Page 60: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

58

FIGURA 11. DIAGRAMA DE SERVICIOS.

14.1.1 Global Error Handler service: Es un servicio global que ayuda a darle tratamiento oportuno a los errores de componentes, errores de otro servicio, esto permite administrar dichos errores desde un mismo módulo que en este caso es el módulo principal.

14.1.2 Messages service: este servicio ayuda a que los mensajes del sistema se alojen en un solo sitio, de tal forma que promueva un mejor mantenimiento de la aplicación, para ser un poco más claros, un ejemplo del servicio:

Imagine que el mensaje que se envía cuando hay una autenticación fallida, el mensaje actual es: “Su contraseña o usuario son incorrectos”, si el administrador de la aplicación quiere separar el mensaje en dos componentes solo debe ir al módulo de servicio del mensaje y ejecutar el cambio, esto evita buscar por todo el robusto código de la aplicación y ejecutar diferentes cambios que puedan generar en afectaciones a la misma.

Page 61: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

59

14.1.3 Scroll app service: Es un servicio que hoy en día lo piden mucho los usuarios, el mismo funciona para almacenar cache de las operaciones realizadas en una pantalla, un ejemplo de este servicio es cuando el usuario se encuentra llenando el formulario de registro y por accidente refresca la página. Al volver a carga la página, los datos ingresados previamente seguirán en su lugar.

14.1.4 http interceptor service: Permite interceptar las peticiones que llegan desde la aplicación, en este caso se utiliza para discriminar qué peticiones requieren token de autenticación y que peticiones no.

14.1.5 Constants: se almacenan las clases en las cuales se encuentran las constantes que se queman en la aplicación, la ventaja de esto es al almacenar todas las constantes en misma carpeta la ejecución de cambios es más simple.

14.1.6 Models: son aquellos que definen la estructura de los datos y ayudan a mejorar la velocidad de ejecución de peticiones.

14.1.7 Guards: son aquellos componentes originados desde Angular que ayudan a controlar todo el esquema de permisos del front-end de la aplicación.

14.1.8 App routing module: este servicio trabaja de acuerdo con el componente principal, es el que se encarga de renderizar mediante el enrutamiento dado o puede leer un archivo que sea enviado por el componente principal.

14.2 Subsistemas:

En la figura 8 se encuentran los componentes y subsistemas que actúan directamente con el usuario y garantizan que el diseño cumpla con las expectativas y brinde una mayor experiencia de Usuario, esta segunda parte la explicaremos en el apartado de subsistemas que se encuentra a continuación.

Page 62: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

60

FIGURA 12. SUBSISTEMAS

Fuente: Autores.

14.2.1 Seguridad de la aplicación

El subsistema de seguridad de la aplicación web, está orientada a 3 aspectos los cuales son: hash de la información sensible de los usuarios, confirmación de la veracidad de las cuentas de los usuarios, protección de los datos y recursos de la universidad piloto de Colombia.

• Hash de información: Este subsistema en su primera parte, para los datos

sensibles de los usuarios se utilizará el método de hash 512, el cual se basa en

un algoritmo criptográfico publicado por el instituto nacional de estándares y

tecnología (NIST) el cual usa un conjunto arbitrario de elementos de datos, para

este caso SHA-512.

En la imagen reflejada anteriormente se puede evidenciar como se ejecuta este

proceso, en el se puede ver como entrada un mensaje al cual se le agregan

aleatoriamente varios caracteres de tal forma que el mensaje queda oculto y

protegido contra usuarios o terceros que deseen averiguar su contenido, como

último paso el mensaje es recibido por el sistema, quien se encarga de ejecutar

el proceso inverso para validar el mensaje.

Page 63: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

61

FIGURA 13. HASH DE INFORMACIÓN

Fuente: Autores.

• Token de seguridad: La aplicación web contará con un token de seguridad para las fases de registro, autenticación y recuperación de usuarios, con el fin de validar la veracidad de autenticidad de identidad, además de que brinda el modelo de doble autenticación que solicitan tantas firmas auditoras, este modelo se elabora mediante JSON WEB TOKEN, comúnmente conocido como JWT, basado en el estándar OAuth 2.0 el cual permite flujos simples de autorización para sitios web.

Page 64: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

62

FIGURA 14. TOKEN DE SEGURIDAD

Fuente: Autores.

• Confirmación de dominio.

La aplicación solo permitirá registro y autenticación a usuarios de la Universidad Piloto de Colombia, ejecutando una validación de dominio de la universidad, de tal forma que el beneficio de la aplicación este únicamente disponible para esta comunidad universitaria y se garantice que no entren al sistema personas externas y/o terceros que quieran afectar de algún modo la universidad.

14.2.2 Reservas de activos

La reserva de activos de software se divide en los siguientes componentes, reserva de activos “video beam, cables usb, cable VGA, cable HDM, convertidores, computadores portátiles, computadores de escritorio, cables auxiliares, etc.”, en los cuales el sistema le indicara si los recursos están disponibles, reservados o agotados.

• Reserva por tipo de usuario:

Los activos de la universidad, debido a políticas internas, ejecuta una discriminación de los elementos, la cual permitirá que no cualquier usuario pueda reservar cualquier elemento, de tal forma que se cumplan estas políticas y que así mismo los docentes, administrativos y estudiantes cuenten con recursos propios y

Page 65: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

63

compartidos, esta discriminación se ejecutara desde una de las tablas de la base de datos en relación con las demás y lanzando la validación desde la aplicación.

• Reservas por fecha:

La aplicación web permitirá que el usuario reserve con anticipación el activo que requiera, siempre y cuando respete los atributos que definen la disponibilidad, este recurso facilitará la agenda, la organización y entrega oportuna de dichos activos. Esto no significa que los usuarios no puedan reservar en el momento, solo agilizará las reservas que se tengan con anticipación y comunicará al usuario en caso de que el activo solicitado no se encuentre disponible, de tal forma que el usuario tenga el tiempo correspondiente para hacer un “plan B”, el sistema solo le solicitará al usuario que indique el activo, la fecha y la hora en la que lo requiere.

• Acciones del sistema:

El sistema ayudará con la gestión y esquematización de los préstamos, de tal forma que el mismo le indicará a los administradores u operarios sobre los equipos que han sido reservados, con el fin de que se elimine el ítem que se encontraba anteriormente en donde un recurso humano era dedicado a esta acción. Este cambio evitará errores humanos y tendrá un control completo de los recursos cargados en el mismo.

14.2.3 Inventario

El módulo de inventario se convierte en uno de los aspectos claves de la aplicación web, ya que en este es en donde se alojará toda la información y descripción de los activos con los que el sistema le dará vida a la aplicación.

• Agregar:

El sistema permitirá agregar los activos al sistema por parte de los usuarios que cuenten con los permisos suficientes, de tal forma que el mismo no quede con los activos iniciales, si no que a medida que la universidad realice actualización tecnológica o de herramientas, estos activos se vean reflejados en el sistema de SHEDULEPILOT.

• Modificar:

La aplicación en su módulo de inventario permitirá modificar las características de los activos de la aplicación, siempre y cuando el usuario cuente con los permisos adecuados, además de esto el sistema tiene la particularidad de modificar características por lote, ya sea para cambiar los permisos de uso u otra característica del activo, resaltando que el cambio quedará en la base de datos para asuntos de auditoría o para revisar alguna irregularidad en la acción.

Page 66: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

64

• Leer:

El sistema permitirá a los usuarios, de acuerdo a los permisos de su rol, ver los movimientos que se ejecuten sobre el mismo, los cambios significativos, ver con los activos que se cuenta, cuantos se han agregado, eliminado o modificado.

• Eliminar:

Aunque la acción de eliminar es fundamental en el subsistema, esta debe tener consideraciones esenciales para que la misma no genere inconvenientes en su funcionamiento, ya que el aplicativo permitirá eliminar el activo, con el fin de que el mismo no se tenga en cuenta a la hora de reservarse por un usuario, el activo siempre permanecerá en la base de datos más la nota que describe por qué se eliminó o se dio de baja, ya sea por daño, actualización o decisión del administrador de la herramienta, ya sea por auditoria o por aclarar alguna inconsistencia.

14.2.4 Data Analytics

El subsistema de analítica permitirá ver estadísticas en tiempo real a los usuarios con los permisos pertinentes, ya sea para ver el impacto de la herramienta o el impacto del proceso, además de analizar si los activos existentes son suficientes para cubrir la demanda actual, ver los elementos más reservados, análisis de recursos de la herramienta, temas de auditoria entre otras funciones que se le pueda dar a esta información.

Page 67: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

65

15. INFRAESTRUCTURA EN LA NUBE

En este capítulo se encuentran descritos los diferentes servicios que ofrece la nube DigitalOcean y que se implementaron en este proyecto. Para conocer las diferentes estructuras lógicas en las que se basa la solución planteada, consultar los anexos J. Estructura aplicación, K. Estructura Nube, L. Estructura de servidor, M. Estructura del sistema operativo.

El diseño en la nube se basa en un diseño de infraestructura como servicio, el cual se basa en una estructura de arrendamiento de recursos, los cuales pueden incrementarse o disminuirse dependiendo la necesidad del sistema, este servicio que ofrece los entornos de nube cuenta con varios componentes cómo se explicaran a continuación.

15.1 Servidor

Uno de los componentes fundamentales es el servidor, el cual se despliega en la nube con un sistema operativo Centos7. Este sistema operativo es gratuito y cuenta con gran comunidad, factor que ayuda con el soporte de este. El servidor cuenta con 2 Virtual CPUS, 2GB de RAM y 50GB de almacenamiento.

15.2 Dominio Y servicio DNS

Se adquirió un dominio gratuito, el cual está contemplando para que la universidad lo reemplace por un dominio de su propiedad, actualmente el dominio que se utilizará para el proyecto es Schedulepilot.tk, el cual tiene asociada una IP publica que es dada por el ambiente de la nube y que esta redireccionada mediante registros DNS con el fin de ejecutar la resolución de nombres de la aplicación.

15.3 Backup

Mediante la toma de un Snapshot almacenado en la nube, la cual funciona como copia de la máquina virtual y también puede ser restaurada en caso de un daño que se presente en el servidor, de tal forma que se pueda recuperar todo el sistema.

15.4 Firewall

Los firewalls se han vuelto parte fundamental de las infraestructuras IT, esto con el fin de evitar ataques que afecten la integridad de los datos o la continuidad del correcto funcionamiento de la aplicación, para este caso se realiza una configuración sobre el firewall local del equipo en donde redireccionamos los puertos, se hace modificación de permisos y la negación del acceso directo al usuario root. De igual forma la nube cuenta con un firewall perimetral compartido o si se desea se puede adquirir un firewall privado, para este proyecto se busca que el firewall perimetral sea asumido por el cliente cuando este servicio sea vinculado con los demás servicios de la universidad.

Page 68: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

66

15.5 Servicios indirectos

El entorno de la nube ofrece unos servicios indirectos, los cuales ayudan con el correcto funcionamiento del proyecto, entre ellos encontramos redundancia de los datos, servicio de HA que básicamente evita que se presenten fallos sobre la aplicación cuando se evidencian fallos sobre la estructura interna de la nube.

FIGURA 15. ESTRUCTURA DE LA NUBE

En la imagen anterior se puede observar cómo se desprenden los sistemas y subsistemas de la infraestructura de la nube previamente explicados.

Page 69: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

67

FIGURA 16. CLOUD CRAFT

Fuente: Autores.

En esta figura se puede evidenciar el diagrama de servicios utilizados para la correcta ejecución del proyecto, entre los cuales se encuentran servicios como: servidor CentOS, almacenamiento SSD, backup tipo Snapshot, administración DNS e internet con IP publica asignada al proyecto.

Page 70: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

68

16. IMPLEMENTACIÓN

En este capítulo se encuentra descrito los diferentes servicios Cloud utilizados en este proyecto, se pondrá en contexto DigitalOcean como nube, se realizará el análisis de cada servicio y como este es esencial y genera un gran impacto en el proyecto, de tal forma que el mismo en su fase operativa se convierta en un servicio autónomo y evitando la compra de hardware costos

16.1 DigitalOcean

Es un proveedor de servicios nube, con sede principal en Nueva York Estados Unidos fundada en 2011, DigitalOcean se caracteriza por ofrecer servicios nube alojados en diferentes datacenter alrededor del mundo, como lo son: Toronto, san francisco, Londres entre otros, atacando la diversidad que solicita cada cliente ofreciendo servicios privados y diseñados a la medida de cada solución.

Además de una gran infraestructura de Datacenter a lo largo del mundo, DigitalOcean cuenta con soporte básico y especializado para sus clientes, además de atraer a la comunidad desarrolladora proponiendo foros de administración y código abierto y sus más de 800 tutoriales oficiales de manejo de la plataforma.

La nube cuenta con soporte IPV4 e IPV6 en servicios de DNS, ofrece servicios de backup de máquina virtual y base de datos, variedad en diferentes sistemas operativos incluyendo los más conocidos como Windows y las derivaciones de Linux. La nube cuenta con redes de hasta 10GB para los desarrolladores apasionados, además de servicio de almacenamiento, aplicaciones, servidores, teniendo como objetivo el autoservicio bajo demanda, amplio acceso a la red, agrupación de recursos, elasticidad rápida y servicio medio.

DigitalOcean ofrece a sus clientes diferentes modelos de soporte acomodados a las necesidades de cada usuario, entre estos se encuentra la infraestructura como servicio (IAAS), Plataforma como servicio (PAAS), Software como servicio (SAAS), además de una variedad de servicios híbridos entre los expuestos anteriormente.

16.1.2 Droplet

Este producto hace referencia a la utilización de servidores alquilados para la operación del proyecto, el cual incluye un acuerdo de servicio SSLA de tiempo de actividad del 99.99%, disponibilidad de este. De manera global, ofrece servicio de aprovisionamiento inteligente en el cual se escoge la finalidad del servidor, se aprovisionan recursos de almacenamiento, CPU y memoria, además del SO operativo apto para el proyecto.

Page 71: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

69

En este proyecto se generó una validación de aprovisionamiento teniendo en cuenta la demanda de recursos que requería la implementación más la puesta en marcha, teniendo en cuenta que Droplet es elástico y escalable para el crecimiento de la aplicación web. Los recursos implementados para el servidor inicialmente son de 2GB de memoria, 50GB de almacenamiento embebido con 150GB más disponibles a medida que el servidor lo requiera y 1 virtual CPU, con sistema operativo Centos 7.6x64.

FIGURA 17. DROPLETS

Fuente: Autores.

En la imagen anterior reflejaran el DROPLET implementado para el proyecto, sus características base, su nombre, sus IP y su sistema operativo de manera operativa.

16.1.3 IP Publica fija

DigitalOcean ofrece una IP publica por DHCP persistente, lo cual indica que el servidor mantiene esta IP incluso cuando el servidor se reinicia, esto evita errores a nivel de DNS, enrutamiento, entre otros errores de red. Además, una IP privada fija, pensando en un crecimiento de la aplicación. lo cual requiere un despliegue de un segundo servidor y un balanceador de carga.

16.1.4 Asignación de dominio y administración DNS

Se realiza la adquisición del dominio schedulepilot.tk como dominio temporal para entorno de pruebas, desarrollo y preproducción de la herramienta con el fin de garantizar el correcto funcionamiento del aplicativo en un ambiente real, el uso del dominio de la universidad para la aplicación requiere de la aprobación de integración de la misma con los sistemas académicos, además se realiza la configuración de registro TIPO A y se usan los nameservers de DigitalOcean para la resolución DNS de la aplicación.

Luego de la adquisición del dominio, se procede a realizar la configuración DNS en la plataforma DNS DigitalOcean la cual se delega al configurar los Name servers de DigitalOcean en la página oficial del dominio, luego de esto se procede con la configuración de registros en la zona administrada en DigitalOcean con los

Page 72: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

70

apuntamientos necesarios que requiere la aplicación, en el momento se configura un registro tipo A de tal forma que la aplicación resuelva su IP por medio del dominio adquirido.

FIGURA 18. DNS

A continuación, se comparte la URL por la cual resuelve la aplicación:

http://schedulepilot.tk/#/public/auth

FIGURA 19. DOMINIO

Fuente: Autores.

En la imagen podemos observar el dominio adquirido para el proyecto, además del registro configurado para la resolución DNS.

16.1.5 Backup tipo Snapshot:

Se realiza la configuración de una copia de seguridad semanal Full tipo Snapshot de la máquina virtual, almacenada en equipos de DigitalOcean de manera cifrada con el fin de mantener la seguridad de la información del servidor.

El backup se ejecuta en el menú de copia de seguridad de la nube DigitalOcean, en el cual se activa mediante un check en la opción de backup, lo cual genera que se habilite el menú de configuración, en una lista desplegable se selecciona cuando se toma el backup full y cuando se realiza la toma del backup incremental, teniendo en cuenta que los incrementales se quedan por 3 días y los full duran un mes almacenados, en este caso realizando un análisis en el cual la aplicación Schedule Pilot funciona hasta las 22:00 hora de Colombia con base a lo indicado por el área de registro y control ya que en ese horario acaba la jornada Diaria de la universidad y se reinicia a las 6:00 am de lunes a sábado, se configuran los backup para que corran en el horario de las 23:00 de cada día de tal manera que no afecte el performance de la aplicación y queden protegidos los cambios diarios de la operación de Shedule-Pilot.

Page 73: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

71

Con respecto al proceso de restauración de la aplicación, su usabilidad es muy amigable con los usuarios ya que se debe dirigir a la pestaña de historial de Backup en el cual la nube despliega todas las copias de seguridad que hay disponibles, habilita la opción de convertir en Backup en un snapshot, esto deja restaurar el servidor en paralelo al que ya existe y por último se puede proceder a restaurar la imagen en el servidor existente.

Convertir en Snapshot: esta opción de backup sirve cuando al servidor se le quieran aplicar cambios ya sea en la aplicación como a nivel de sistema operativo, de tal forma que podamos devolvernos en caso de falla sobre los cambios realizados.

Crear Droplet: Este proceso permite restaurar el servidor en paralelo sin afectar la maquina productiva de tal manera que podamos montar el ambiente de desarrollo sobre posibles cambios que se puedan hacer a la aplicación, los cuales después de que sean exitosos, se baja el de producción y se sube el ambiente de pruebas de tal forma que quede productivo.

Restore Droplet: restaura la imagen solicitada sobre el servidor, esta es la opción más rápida para recuperar la máquina virtual en caso de que se presente un incidente sobre la misma.

FIGURA 20. DROPLET BACKUPS

Fuente: Autores.

16.1.6 Monitoreo:

Uno de los aspectos más esenciales en la operación de un servidor es su monitoreo, por lo que, cuando se despliega una máquina física, se debe toca contratar o comprar un agente que pueda ayudar con el mismo o solamente configurar

Page 74: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

72

monitoreo de puertos. En este caso, la nube ofrece un servicio de monitoreo que es sencillo de configurar y es gratuito.

Este servicio brinda la capacidad de monitorear los consumos que esté presentando el servidor, entre los cuales se encuentran la CPU, La Memoria, el espacio en disco, la escritura en disco, entre otros. Además, este servicio de monitoreo configurado en el servidor envía alertas dependiendo los parámetros que se hayan configurado, al correo electrónico determinado, lo cual garantiza que el servicio siempre esté disponible y tomar acciones proactivas en caso de algún posible incidente. Permite realizar predicciones de comportamiento, validar las horas, días o meses en los que se presenten picos de consumo y ejecutar un plan de acción de crecimiento de la aplicación.

Mediante la ejecución del comando “curl -sSL https://repos.insights.digitalocean.com/install.sh | sudo bas” en el servidor se habilita el Script de instalación de las métricas de monitoreo que ofrece DigitalOcean este se puede ejecutar en caliente y permite la habilitación de alertas configuradas por el administrador en este caso se incorporaron alertas al 85% de recursos, con el fin de evidenciar el comportamiento del servidor y analizar si es necesario el aumento de recursos.

FIGURA 21. MONITORES

Fuente: Autores.

En la imagen se observará una de las alertas básicas configuradas, teniendo en cuenta los consumos enviados por el servidor en su fase inicial, se puede observar parámetros al 80 y al 82% para generar las alertas.

16.1.7 Estadísticas:

La nube de DigitalOcean permite ver las estadificas de consumo y de comportamiento del servidor en los últimos 14 días, esto permite realizar análisis y predicciones de comportamiento, validación de incidentes que se puedan presentar o problemas que se estén presentado, lo cual ayuda ver la causa raíz, ejecutar la corrección y ver su comportamiento a raíz de esta, entre las estadísticas que muestra se encuentran el consumo de CPU, memoria, banda ancha y disco.

Page 75: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

73

FIGURA 22. RENDIMIENTO CPU VIRTUAL

Fuente: Autores.

En la imagen podemos observar las estadísticas de consumo CPU equivalente a una hora de consumo.

16.1.8 Servicio de Consola Virtual y Contraseña.

El entorno Cloud de DigitalOcean ofrece un servicio que viene configurado por Default de Consola, el cual es similar a que se tuviera que conectar una pantalla con cable VGA para tener acceso al servidor en caso de un error de Red. La diferencia de este servicio en la nube es permite ingresar a la consola desde cualquier lugar del mundo solo requiriendo una conexión de internet, esto permitirá validar los servicios del servidor y corregir los errores de red para recuperar su operatividad.

El servicio de contraseña que ofrece la nube es una interacción programada de la aplicación web de la nube con el servidor, de tal forma que se pueda cambiar el password desde la aplicación sin necesidad de ejecutar un password recovery, lo cual implicaría el reinicio de la máquina virtual y una indisponibilidad para el servicio que esta presta, en este caso el manejo de los activos físicos del área de audiovisuales para la universidad Piloto de Colombia, ejecutando un token de seguridad y enviando una notificación del cambio al correo electrónico.

16.1.9 Energía y sistema de apagado

La nube, al ser un sistema de arrendamiento cubre todos los gatos de infraestructura y de energía que consume su infraestructura, lo cual garantiza que no haya sobrecostos inesperados en el proyecto, además de que su costo de operación será mucho más económico que tener una maquina física.

El servicio de Droplet viene con un sistema de apagado forzoso en caso de un bloqueo del servidor a nivel de sistema operativo, este concepto se ha trabajado en

Page 76: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

74

diferentes nubes y sirve para para apagar el servidor en caso de que se requiera, es similar a desconectar las fuentes poder en un servidor físico, pero de manera más ágil y rápida sin dejar de lado que permite apagar los servicios de manera controlada igualmente desde la consola de administración del servidor virtual. Además, en este sistema de apagado controlado y forzoso que ofrece la nube, se puede ejecutar reinicios forzosos en caso de que se requiera superar algún incidente presentado en el servidor.

16.1.10 Firewall

DigitalOcean entrega el firewall perimetral, el mismo debe ser configurado y administrado por el acreedor del servicio, en el momento se configura el trafico entrante y saliente, esto debido a que un servidor web al tener habilitada la navegación presenta un riesgo bastante alto para posibles ataques lo cual pueden llegar a afectar los servicios desplegados.

Del trafico éntrate se configura el puerto de acceso SSH 22, cuando se requiere realizar alguna configuración de mantenimiento o de validación de log de la aplicación, luego de que se finaliza se bloquea nuevamente el puerto ya que este es uno de los mas vulnerables a ataques a los servidores Centos, se habilitan los puertos utilizados por la aplicación para el despliegue de la interfaz grafica y sus funcionalidades que son los puertos: 8080 Core del Backend, 5432 de la base de datos, 80 de la aplicación web

Del tráfico saliente se habilitan los puertos de la aplicación mencionados anteriormente y se proceden a deshabilitar el puerto ICMP con el fin de que el servidor no sea identificado por posibles atacantes y se habilita en caso de falla de conectividad de la aplicación de tal forma que se puedan ejecutar las pruebas.

16.1.11 Redundancia

Con base a las definiciones presentadas, la nube de DigitalOcean tiene clusterizado, los nodos en donde se almacena el servidor, de tal forma que si se presenta caída en uno de estos nodos el Servidor procederá a ejecutar un HA, lo cual refiere que el mismo migrara a otro nodo sin presentar indisponibilidad de nuestro servicio, esto es una configuración transparente para el usuario ya que son configuraciones internas de la nube por lo cual ofrece un acuerdo de servicio SSLA de tiempo de actividad del 99.99%, en caso de que se llegara a materializar el 00,01% faltante, el proyecto tiene contemplado una recuperación por copias de seguridad, lo cual se procederá a restaurar la última copia de seguridad disponible que de acuerdo al proceso de backup explicado anteriormente lo cual garantizaría el backup a las 23:00 horas del día anterior, se procederá a poner esta copia en producción con el fin de que la operación de la aplicación no se vea afectada, en paralelo se trabajara en recuperar el servidor afectado con el fin de garantizar la recuperación de la data que no cubrió el backup. En base a la redundancia de la aplicación y basado en la

Page 77: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

75

demanda de esta, se tiene plantea a futuro realizar la implementación de un balanceador de carga y un segundo servidor con el fin de apuntar la configuración DNS al balanceador de carga mientras este ejecuta la repartición de tareas entre los dos nodos. De tal forma que, si se llegase a presentar algún incidente sobre algún nodo, la aplicación siga funcionando con el nodo secundario mientras se trabaja se trabaja en la recuperación de nodos fallido. Esto sujeto a la autorización de los costos operativos de esta redundancia.

16.1.12 Escalabilidad

Por medio de la nube DigitalOcean y con base a que el servicio de Droplet es dedicado para servicios Web escalables, se tiene contemplado mediante el análisis de métricas y la configuración de los componentes de monitoreo explicados anteriormente, que se pueda ejecutar el aumento de recursos básicos; por medio de la opción de cambiar tamaño se puede redimensionar los recursos del servidor en caliente con base a la necesidad que se requiera.

FIGURA 23. RECURSOS ESCALABLES

Fuente: Autores.

Page 78: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

76

17. APLICACIÓN WEB E INTERFAZ MOVIL

Con base a la estructura planteada de la aplicación y con la necesidad de que la misma llegue al nivel de usabilidad esperado por los usuarios, se propone un diseño sencillo en el cual los usuarios se familiaricen con la aplicación adaptando el modelo de las aplicaciones de ‘Deliverys’ entre las cuales se encuentra, Rappi, Domicilios.com, entre otras aplicaciones referenciadas anteriormente en el documento en el capítulo “Estado del arte” en donde se explica su esquema.

El adoptar los esquemas de pantallas de estas aplicaciones y su funcionalidad, se basa en el éxito de estas y los buenos comentarios que han tenido por parte de sus usuarios. Además de adaptar el esquema de pantallas basado en estas aplicaciones, se toma como referencia la paleta de colores de universidad Piloto de Colombia de tal forma que la aplicación muestre un sentido de pertenencia hacia la universidad y sus estudiantes y docentes se familiaricen con esta.

La propuesta de las plantillas y pantallas se socializó con docentes y estudiantes, los cuales valoraron la facilidad de su uso, además realizaron retroalimentaciones en las cuales aconsejaban cambiar formularios escritos por opciones dinámicas de un solo clic y paneles en donde el usuario seleccionara la opción brindada por el sistema, ajustes de paneles y ubicación de nuevos botones. Luego del análisis de usabilidad y de plantear la mejor interfaz gráfica con base a los comentarios y consejos de los docenes y estudiantes entrevistados, se procede a generar los paneles de funcionabilidad de la aplicación entre los cuales se destacan: el panel de solicitudes, panel de productos, panel de préstamos, panel de devoluciones y panel de reportes.

Cada panel viene acompañado del análisis por el usuario que lo utiliza, en este caso los paneles de solicitudes y préstamos se ajustaron en compañía de algunos Estudiantes y docentes de la universidad Piloto de Colombia, los paneles de reportes y productos se realizaron con base a las necesidades indicadas por el área de audiovisuales de tal forma que se garantizara una buena usabilidad por parte de esta, en donde con un solo clic se agregaran los productos y los artículos que se cargan en el sistema, de igual forma con un clic aprobar las devoluciones de los productos.

Con respecto a los reportes que genera la aplicación, se le preguntó al personal del área de audiovisuales cuales eran los reportes que más le solicitaban por parte de la empresa dueña del proceso, entre los cuales destacaron la cantidad de préstamos realizados en el mes, los elementos más prestados y las multas impuestas, por lo cual se ejecutó la configuración de estos reportes mediante los datos almacenados en la base de datos y la configuración en el front-end. Se configuró una pantalla especifica donde se selecciona el rango de fechas y el tipo

Page 79: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

77

de reporte, luego la aplicación procede a generarlo y lo entrega en formato de Excel ya que esta área entregaba anteriormente los reportes en este formato. En esta sección se abordan los aspectos relacionados a la implementación y resultados finales del desarrollo del aplicativo web y de cómo este se adaptó para que, a su vez y pensando en el usuario final, sea también un aplicativo móvil. Teniendo en cuenta que existían modelos de este sistema desarrollados previamente, se procede a crear un prototipo de nueva plataforma y entorno para la Universidad Piloto de Colombia. Finalmente se desarrolla una aplicación con dos interfaces: usuario ordinario y super usuario.

17.1 Aplicación Web

La aplicación web, cuya finalidad es ofrecer el servicio de reserva de activos para estudiantes y profesores, también ofrece el servicio de administración de estos para los administradores o dueños del proceso en la universidad. En cuanto a la arquitectura, está pensada para ser escalable, es decir modular, porque los servicios es un mundo aparte de la aplicación web. Los cambios se hacen solo en los módulos.

FIGURA 24. ARQUITECTURA WEB

Fuente: Autores.

17.2 Interfaz Móvil

La interfaz móvil surge de la implementación de “Responsive Web Design” en la codificación y desarrollo del aplicativo Web. Al crear un sitio con Responsive Web Design solo se necesita una versión de HTML y CSS que funcionará

Page 80: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

78

adecuadamente en cualquier tipo de dispositivo y resolución. Implementar Responsive Web Design permite dejar de preocuparse o no invertir demasiado tiempo tratando de que el sitio web se vea idéntico en cada dispositivo.34

En la figura x se puede apreciar cómo queda la pantalla de inicio al acceder por un computador y en la figura 18, como se ve al acceder por medio de un dispositivo inteligente que puede ser, una Tablet, un teléfono móvil, entre otros.

FIGURA 25. PANTALLA DE INICIO WEB

Fuente: Autores.

Así se ve la primera pantalla, o la pantalla de inicio de sesión de la plataforma web.

34 A. Vega, “Responsive Web Design: Interfaces Web Adaptables al dispositivo empleando HTML5 y CSS3,” 2014.

Page 81: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

79

FIGURA 26. PANTALLA DE INICIO RESPONSIVE

Fuente: Autores.

En esta figura se puede apreciar la primera pantalla, o la pantalla de inicio al acceder desde un teléfono móvil cuya resolución de es 1080x2340 píxeles.

Page 82: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

80

18. CONCLUSIONES

• La creación de los requerimientos funcionales de un sistema son quizás la parte más importante del inicio de un proyecto, pues de este depende que no haya imprevistos en temas vitales como costos y tiempos de entrega. Es por eso que, el primer objetivo de este proyecto de grado habla de la creación de los requerimientos funcionales y no funcionales partiendo de las necesidades no solamente de los dueños del proceso, sino también de todos los actores del mismo, es decir, estudiantes y profesores que son quienes dan vida y origen a la administración de activos del área de audiovisuales.

• El mejor ingeniero de sistemas no solamente es quién diseña sistemas para la mayor cantidad de usuarios posible, sino también quien tiene la capacidad de hacer que un usuario se adapte fácilmente a una nueva herramienta de trabajo. Es por eso por lo que de este proyecto de grado se puede concluir que analizar y diseñar un sistema que ofrezca la mejor calidad de experiencia de usuario a un usuario final es quizás la mejor manera de “vender” un software, pues, las cosas complejas y lógicas son tareas del ingeniero de sistemas, y lo del usuario es usarlas sin mayor esfuerzo.

• La analítica de datos es un tema que surge en el siglo XXI como base fundamental de la optimización de recursos y procesos, es por eso que, este sistema busca, además de arrojar datos para analizarlos y aprovecharlos, abrir una puerta hacia los demás procesos internos de la universidad y empezar a plantear preguntas acerca de cómo se pueden optimizar los recursos sin alterar la calidad de un determinado servicio o producto final. Esto es posible gracias al desarrollo y avances en sistemas de bases de datos. La base de datos de este proyecto es su corazón, es a quien le preguntamos antes de tomar cualquier decisión, pues de sus datos salen todas las cifras de negocio y este concepto aplica para la mayoría de las empresas hoy en día.

• La computación en la nube es uno de los avances tecnológicos más sustanciales de todos los tiempos y esto se evidencia no solo en la gran cantidad de corporaciones que no necesariamente se dedican a desarrollos o temas tecnológicos, sino también en que al ser un tema de interés global, día a día se invierten millonarios recursos para explotar una mina de oro llamada información y todo lo que con ella se pueda hacer.

• La importancia de las pruebas de software realizadas a este proyecto radica en garantizar la calidad de este. Tienen como objetivo garantizar que el proyecto cumple con lo pactado y evitar que haya un mayor costo de recursos, no sólo económicos, sino temporales y de esfuerzo de desarrollo de software. Aunque en el pasado, la fase de pruebas era algo prescindible, actualmente toma cada vez más fuerza e incluso es objeto de automatización en algunas entidades.

• La protección del medio ambiente debería formar parte de los programas de formación reglada en diferentes ámbitos de la enseñanza, incluida la

Page 83: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

81

universitaria. En particular, el Grado universitario en Ingeniería de sistemas debería contener materias obligatorias para la enseñanza de la protección del medio ambiente. BIBLIOGRAFÍA

A. Balalaie, A. Heydarnoori, and P. Jamshidi, “Microservices Architecture Enables

DevOps: Migration to a Cloud-Native Architecture,” IEEE Softw., vol. 33, no. 3, pp.

42–52, 2016, doi: 10.1109/MS.2016.64.

A. Jayaram, "An IIoT quality global enterprise inventory management model for automation and demand forecasting based on cloud," 2017 International Conference on Computing, Communication and Automation (ICCCA), Greater Noida, 2017, pp. 1258-1263, doi: 10.1109/CCAA.2017.8230011.

A. Skendzic and B. Kovacic, "Microsoft Office 365 - cloud in business environment,"

2012 Proceedings of the 35th International Convention MIPRO, Opatija, 2012, pp.

1434-1439.

A. Urteaga Pecharromán, “Aplicación de la metodología de desarrollo ágil Scrum

para el desarrollo de un sistema de gestión de empresas,” p. 131, 2015, [Online].

Available: https://e-archivo.uc3m.es/handle/10016/23750.

A. Vega, “Responsive Web Design: Interfaces Web Adaptables al dispositivo empleando HTML5 y CSS3,” 2014.

B. C. Pando Soto and G. D. Rodriguez Rafael, “Estado del arte de PSP y la Industria

del Software,” Ind. Data, vol. 21, no. 2, p. 111, 2018, doi:

10.15381/idata.v21i2.15610.

B. Snyder, R. Green, V. Devabhaktuni and M. Alam, "Evaluation of Highly Reliable Cloud Computing Systems Using Non-sequential Monte Carlo Simulation," 2014 IEEE 7th International Conference on Cloud Computing, Anchorage, AK, 2014, pp. 940-941, doi: 10.1109/CLOUD.2014.133.

Chris Griffith. 2017. Mobile App Development with Ionic2: Cross-Platform Apps with

Ionic 2, Angular 2, and Cordova. O’Reilly Media. Retrieved from

http://shop.oreilly.com/product/0636920044710.do.

Page 84: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

82

D. Namiot and M. Sneps-Sneppe, “‘On microservices Architecture’ International

journal of open information technologies.,” Int. J. Open Inf. Technol., vol. 2, no. 9,

pp. 24–27, 2014, [Online]. Available: http://injoit.org/index.php/j1/article/view/139.

D. S. Linthicum, "Cloud Computing Changes Data Integration Forever: What's Needed Right Now," in IEEE Cloud Computing, vol. 4, no. 3, pp. 50-53, 2017, doi: 10.1109/MCC.2017.47.

escuela.it (Ene 2019). Desarrollo Web. May 1, 2020 Obtenido de Escuela.IT:

https://escuela.it/materias/desarrollo-web.

Hernández, R., Fernández, C., y Baptista, M.P. (2010) Metodología de la

Investigación (5ª Ed.). México: McGraw Hill Educación.

J. A. Baldonedo and V. R. Montequín, “Modelo CMMI y métodos ágiles en la gestión

de proyectos software,” p. 136, 2017, [Online]. Available:

http://digibuo.uniovi.es/dspace/bitstream/10651/43638/3/TFMJuanAlonsoBaldoned

oRUO.pdf.

J. A. Díaz and D. Pérez, “Optimización de los niveles de inventario en una cadena

de suministro,” Ing. Ind., vol. XXXIII, no. 2, pp. 126–132, 2012, [Online]. Available:

http://scielo.sld.cu/pdf/rii/v33n2/rii04212.pdf.

J. RODRIGUEZ HIGUERAS and N. MANTILLA AGREDO, “MERCADEO DIGITAL

Caso: RAPPI,” 2017. [Online]. Available:

https://doi.org/10.1016/j.tmaid.2020.101607%0Ahttps://doi.org/10.1016/j.ijsu.2020.

02.034%0Ahttps://onlinelibrary.wiley.com/doi/abs/10.1111/cjag.12228%0Ahttps://d

oi.org/10.1016/j.ssci.2020.104773%0Ahttps://doi.org/10.1016/j.jinf.2020.04.011%0

Ahttps://doi.o.

Javiet Tafalla (Ago 9, 2017) Por qué Cloud Computing es útil para las empresas.

Abr 27, 2020 Disponible en: https://www.hiberus.com/crecemos-contigo/cloud-

computing-util-las-empresas/

Karla Gonzalez (Ago 2017) Importancia de la tecnología en las organizaciones. Abr

22, 2020 Disponible en: https://sites.google.com/site/innovadorascom/importancia-

de-la-tecnologia-en-las-organizaciones.

L. De Lauretis, “From monolithic architecture to microservices architecture,” Proc. - 2019 IEEE 30th Int. Symp. Softw. Reliab. Eng. Work. ISSREW 2019, pp. 93–96, 2019, doi: 10.1109/ISSREW.2019.00050.

Page 85: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

83

León Javier Jesús, “App Web Scrum,” 2014, [Online]. Available:

https://upcommons.upc.edu/bitstream/handle/2099.1/23350/Resum.pdf.

M. Bahrami, "Cloud Computing for Emerging Mobile Cloud Apps," 2015 3rd IEEE International Conference on Mobile Cloud Computing, Services, and Engineering, San Francisco, CA, 2015, pp. 4-5, doi: 10.1109/MobileCloud.2015.40.

M. H. Samadzadeh and H. Puripunpinyo, “Design, prototype implementation, and comparison of scalable web-push architectures on Amazon web services using the actor model,” Proc. - 25th Int. Conf. Syst. Eng. ICSEng 2017, vol. 2017-January, pp. 301–308, 2017, doi: 10.1109/ICSEng.2017.42.

M. Rahman and J. Gao, “A reusable automated acceptance testing architecture for microservices in behavior-driven development,” Proc. - 9th IEEE Int. Symp. Serv. Syst. Eng. IEEE SOSE 2015, vol. 30, pp. 321–325, 2015, doi: 10.1109/SOSE.2015.55.

M. Sullivan and M. Olson, “An index implementation supporting fast recovery for the POSTGRES storage system,” Proc. - Int. Conf. Data Eng., pp. 293–300, 1992, doi: 10.1109/icde.1992.213181.

María Estela Raffino (Feb 14, 2020) Base de datos. May 3, 2020 Disponible en:

https://concepto.de/base-de-datos/. Consultado: 18 de mayo de 2020.

Mell, P. and Grance, T. The NIST Definition of Cloud Computing. Gaithersburg:

National Institute of Standards and Technology, 2011.2. Salesforce.

Michael Stonebraker, Eric Hanson and Chin-Heng Hong, “THE DESIGN OF THE POSTGRES RULES SYSTEM” EECS Department University of California, Berkeley, Ca., 94720,” 1987.

N. Herrera, D. Ruano, P. Azar, D. Welch, A. De Battista, and A. Pascal, “Indexando Bases de Datos no Estructurados.”

N. Técnica, “Norma Técnica Ntc-Iso/Iec Colombiana 27001,” 2006, [Online].

Available:

http://intranet.bogotaturismo.gov.co/sites/intranet.bogotaturismo.gov.co/files/file/No

rma. NTC-ISO-IEC 27001.pdf.

NEBEL, Andrés. Arquitectura de microservicios para plataformas de integración. [en

línea]. Tesis de maestría. Universidad de la República (Uruguay). Facultad de

Ingeniería. 2019. [Fecha consulta: 8 de noviembre 2020].

Page 86: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

84

P. Maenhaut, H. Moens, B. Volckaert, V. Ongenae and F. De Turck, "Resource Allocation in the Cloud: From Simulation to Experimental Validation," 2017 IEEE 10th International Conference on Cloud Computing (CLOUD), Honolulu, CA, 2017, pp. 701-704, doi: 10.1109/CLOUD.2017.96.

R. Rauscher and R. Acharya, "Virtual Machine Placement in Predictable Computing Clouds," 2014 IEEE 7th International Conference on Cloud Computing, Anchorage, AK, 2014, pp. 975-976, doi: 10.1109/CLOUD.2014.148.

Revuelta Bayod, M. J. (2018). Big Data: Crisis and New Approaches in the Comunication Flows of the Fouth Industrial Revolution ; “Big Data”: crisis y nuevos planteamientos en los flujos de comunicación de la cuarta revolución industrial. https://doi.org/10.5209/ARAB.59521

Salesforce (Ene 2017) ¿Qué es Cloud Computing? May 10, 2020 Disponible en:

https://www.salesforce.com/mx/cloud-computing/

Siddharth Kalla (Jun 16, 2011). Estudio correlacional. May 13, 2020 Obtenido de

Explorable.com: https://explorable.com/es/estudio-correlacional.

T. Mengistu, A. Alahmadi, A. Albuali, Y. Alsenani and D. Che, "A "No Data Center" Solution to Cloud Computing," 2017 IEEE 10th International Conference on Cloud Computing (CLOUD), Honolulu, CA, 2017, pp. 714-717, doi: 10.1109/CLOUD.2017.99.

Tiraboschi, M. (2019). La renovación del bienestar y los sistemas de relaciones industriales, así como las infraestructuras para los procesos económico, social y cultural de la cuarta revolución industrial. Universidad Nacional Autónoma de México, Instituto de Investigaciones Jurídicas. https://ezproxy.unipiloto.edu.co/login?url=http://search.ebscohost.com/login.aspx?direct=true&db=edsbas&AN=edsbas.B947BF35&lang=es&site=eds-live

Visión Industrial (Ene 2016) ¿Qué es la Tecnología? May 9, 2020 Disponible en:

http://www.visionindustrial.com.mx/industria/la-tecnica/que-es-la-tecnologia

W. D. Díaz Ariza, “Computación En La Nube Y Su Seguridad,” Univ. Pilot. Colomb.,

2015, [Online]. Available:

http://repository.unipiloto.edu.co/bitstream/handle/20.500.12277/2785/Trabajo de

grado.pdf?sequence=1.

W. Li, Z. Lin, X. Zhang and J. Zhou, "Research on Distributed Logistics Inventory Model Based on Cloud Computing," 2016 12th International Conference on Computational Intelligence and Security (CIS), Wuxi, 2016, pp. 73-77, doi: 10.1109/CIS.2016.0025.

Page 87: DESARROLLO DE UN SISTEMA DE INFORMACIÓN BASADO EN …

85

Y. Amanatullah, C. Lim, H. P. Ipung and A. Juliandri, "Toward cloud computing reference architecture: Cloud service management perspective," International Conference on ICT for Smart Society, Jakarta, 2013, pp. 1-4, doi: 10.1109/ICTSS.2013.6588059.

Y. Pavón González, L. Puente Baró, M. Infante Abreu, and J. Blanco González,

“ERP Odoo configuration experience for small business. Successful case in

tostonet,” Ingeniare, vol. 26, no. 3, pp. 514–527, 2018, doi: 10.4067/S0718-

33052018000300514.

Z. Wu and A. C. Weaver, “Bridging trust relationships with Web service enhancements,” Proc. - ICWS 2006 2006 IEEE Int. Conf. Web Serv., pp. 163–169, 2006, doi: 10.1109/ICWS.2006.40.

Oracle Corporation, “¿Qué es una base de datos relacional?”, [Online]. Available: https://www.oracle.com/co/database/what-is-a-relational-database/#:~:text=Se%20puede%20considerar%20una%20base,desde%20la%20década%20de%201970.

Momjian, Bruce, “PostgreSQL: Introduction and concepts / Momjian, Bruce”, Pearson Education Corporate Sa, p. cm. ISBN 0-201-70331-9.

Berman HM, Olson WK, Beveridge DL, et al. The nucleic acid database. A comprehensive relational database of three-dimensional structures of nucleic acids. Biophys J. 1992;63(3):751-759. doi:10.1016/S0006-3495(92)81649-1