“JOSÉ BALLIVIÁN”
ALSIE CONSULTORES PEDAGÓGICOS
TÍTULO:
Propuesta de una arquitectura para
reemplazar el sistema informático la
empresa SeLA – Oruro
Postulante:
Tutor:
Agosto, 2020
Cochabamba - Bolivia
AGRADECIMIENTOS
Dedico es trabajo a la
empresa SeLA Oruro por
permitirme ser parte de su
equipo de desarrollo y
aportar con mi
conocimiento.
ÍNDICE
INTRODUCCIÓN ........................................................................................................ 1
Hipótesis .................................................................................................................. 5
Tablas
Figuras
La industria del software a medida que va evolucionando, requiere cada vez nuevas
formas de plantear soluciones óptimas, robustas y escalables, de tal manera que el
código pueda ser mantenible en el tiempo con el mínimo costo posible.
Hace no mucho tiempo atrás los sistemas de escritorio eran la única forma de
desarrollar soluciones informáticas, aunque aún se sigan utilizando estos presentan
varios problemas, especialmente cuando se habla de costos de mantenimiento. Todo
esto ha ido evolucionando de tal forma que ahora los más común y factible es
desarrollar aplicaciones de web y aplicaciones móviles.
Las arquitecturas monolíticas eran comunes en los inicios del desarrollo de software,
según la necesidad estos han ido evolucionando a arquitecturas cliente – servidor para
que puedan trabajar dentro de una infraestructura de red. Con la aparición de los
sistemas web, las arquitecturas MVC han sido muy populares ya que separaba en
capas bien definidas la interfaz del usuario, la lógica del negocio el acceso a los datos.
Las arquitecturas orientadas a servicios SOA, fueron esenciales para escalar los
sistemas a niveles macro, esto fue evolucionando y ahora se utilizan varios derivados
como las arquitecturas de microservicios para compartir información entre diferentes
plataformas y dispositivos.
1
lo mismo una aplicación que controla un hospital que una aplicación de un cajero
automático, cada una tendría un dibujo arquitectónico distinto.
Problema Científico
Para administrar los procesos del Servido Local de Acueductos y Alcantarillados SeLA
– Oruro, actualmente la empresa cuenta con un sistema informático de escritorio que
está en funcionamiento e instalado en las máquinas de todos los funcionarios que
utilizan el sistema. A la fecha el sistema presenta muchos problemas debido a su
arquitectura y a la tecnología con la que fue desarrollada, tecnología que ha quedado
obsoleto.
Para que el sistema trabaje en red, lo que se ha hecho es compartir una carpeta con
las tablas DBF de la base de datos, ocasionando problemas de seguridad. Se observó
que estas fallas son provocadas por los errores de configuración y el diseño en la base
de datos.
2
Los nuevos requerimientos también son un problema ya que el sistema no puede ser
escalado para que funcione a través de internet o comparte información con los nuevos
dispositivos móviles, a esto se suma la falta de programadores de Visual FoxPro.
El sistema está quedando obsoleto debido a estos problemas, por lo que la empresa
está buscando la forma de reemplazar por completo es sistema actual por un nuevo
sistema con tecnología actual, base de datos robusta, y bajos costos de
mantenimiento.
Por lo tanto, se busca la mejor estrategia para reemplazar el sistema actual de SeLA
– Oruro por un nuevo sistema informático, que permita migrar toda la funcionalidad
implementada del sistema actual, que se mantenga la integridad de los datos, se
agreguen nuevas características, y sobre todo se reduzcan los costos de
mantenimiento.
3
Objetivo General
Proponer una arquitectura flexible y robusta que permita reemplazar por completo el
sistema actual de la empresa de Servicio local de Acueductos y Alcantarillado SeLA –
Oruro por un nuevo sistema desarrollado con tecnología moderna y robusta. De tal
forma que se migre toda la funcionalidad al nuevo sistema, se mantenga la integridad
de los datos, se agreguen nuevas características, y se reduzcan los costos de
mantenimiento.
Objetivos Específicos
4
Hipótesis
Métodos y Técnicas
5
CAPÍTULO I
Una arquitectura obsoleta impide que el software evolucione y se adapte a las nuevas
necesidades de una empresa en constante crecimiento. Debido a su tecnología e
infraestructura, los costos de mantenimiento son elevados.
Todo software tiende a tener un tiempo límite de vida por el avance tecnológico que
hará que el software caduque y comience a presentar fallas hasta llegar al punto de
quedar obsoleto, lo que nos lleva a actualizar o a adquirir un software más actual
acorde con la época y las necesidades de la empresa.
Arquitectura
Factores asociados respecto a la representación y
organización de los componentes del software
Infraestructura
Factores relacionados con los ambientes de despliegue,
sistemas operativos, redes, servidores y contenedores de
hardware
6
1.3 Operacionalización de variables
7
V4. V4. D1. - Mapa de despliegue
Infraestructura Plataforma de - Proceso de despliegue
despliegue - Tecnologías de despliegue
− Entrevistas
8
CAPÍTULO II
ARQUITECTURA DE SOFTWARE
La arquitectura del software por tanto define la estructura que debe tener un software,
las piezas que debemos construir y el modo en el que se deben de juntar y trabajar
entre ellas.
9
− Considerar alternativas arquitectónicas en una etapa en la que hacer cambios
al diseño todavía es relativamente fácil.
a) Alto nivel.
b) Estructura.
10
c) Capas.
Existen varios principios que guían al diseño de una buena arquitectura de software,
entre las que podemos mencionar:
11
comportamiento y haga que cualquier otro elemento de la aplicación que
requiera este comportamiento use la nueva construcción
c) Orthogonality
d) Reversibility
e) Tracer Bullet
12
prototipos de pequeñas funcionalidades; también se puede diseñar mockups o
interfases de usuario, para mostrarle a los clientes una idea de lo que se está
construyendo. A esto se refiere Tracer Bullet o Balas trazadoras.
a) Requerimientos.
b) Diseño.
13
c) Documentación.
d) Evaluación.
Un patrón propone una solución arquitectónica que sirve como base para el diseño de
la arquitectura de un software.
14
De acuerdo al problema que se está tratando de resolver, se pueden aplicar uno o
varios patrones de arquitectura que ayuden a resolver el problema.
a) Arquitectura monolítica
15
− Controlador: maneja la entrada del usuario
e) Patrón de microservicios
16
Se refiere a la notación del modelado y al conjunto de herramientas para documentar
una arquitectura y establecer un marco conceptual con un vocabulario que se use
durante el diseño de la arquitectura de software.
Existen muchas notaciones para modelar y documentar sistemas software, entre las
más importantes se mencionan las siguientes:
a) C4 Model.
b) UML.
Afectan a la forma interna del sistema, son decisiones micro que podrían afectar a la
arquitectura global del software, por ejemplo:
17
2.6.4 Patrones de evolución
18
CAPÍTULO III
PROPUESTA ARQUITECTÓNICA
De igual manera, y al ser una institución pública; la Contraloría General del Estado se
constituye en otra instancia fiscalizadora del manejo de recursos que realiza SeLA –
Oruro durante todas las etapas que permiten la prestación del servicio de agua potable
a la población de la ciudad de Oruro.
Actualmente la empresa enfrenta nuevos retos, tales como la consolidación del área
de servicio, la expansión y prestación de servicios en condiciones óptimas a zonas
periurbanas, una gestión operativa moderna y la incorporación del servicio de
alcantarillado sanitario dentro de sus atribuciones. Retos que exigen una reflexión
colectiva sobre las restricciones a las que se enfrentan para lograr mejores resultados
y la construcción conjunta de una visión de futuro que inspire el desempeño colectivo
19
e individual para alcanzar la máxima aspiración institucional de contribuir a mejores
condiciones de vida a la población orureña.
Fuente: http://selaoruro.gob.bo/institucion.php
20
3.2 Análisis de la arquitectura del sistema actual
Se utiliza UML 2 como notación de modelado para diseñar la arquitectura actual del
sistema.
cmp ArquitecturaActual
«device»
«executable» lecturas
SeLASIS (Excel)
Terminal Movil
Portatil
PDA
Funcionario
SeLA
Microsoft Visual
rutas
FoxPro 7
Recurso compartido
«database» Lectores
DBF
Este sistema está desarrollado en Visual Fox Pro 7, y como base de datos utiliza su
propio sistema de archivos DBF3 (database file) en una carpeta compartida para que
3 dBASE: fue el primer sistema de gestión de base de datos usado ampliamente para
microcomputadoras
21
el sistema ejecutable pueda leerlo desde cualquier computadora en la red. Para las
lecturas de consumo de agua, se descargan las rutas y los clientes en unos terminales
móviles portátiles PDA para que los lectores se los lleven y registren el consumo de
agua en estos dispositivos; una vez registrado vuelven a la empresa y el personal de
sistemas descarga los datos al sistema de SeLA.
El sistema actual cubre varias unidades de la empresa, aunque no todas. Entre las
unidades que cubre el sistema se tiene: Gestión de trámites, instalaciones nuevas,
regularizaciones, mantenimiento, catastro, gestión de clientes, lecturas, cajas,
facturación, créditos, hidrómetros, ODECO y atención al cliente.
En base al análisis que se hizo de la arquitectura del sistema actual, se han encontrado
varios problemas que impiden que el sistema siga en funcionamiento de manera
adecuada y escale para implementar nuevas funcionalidades.
22
− La alta demanda de transacciones a la base de datos ocasiona que los índices
se rompan, dejando a la base de datos y al sistema inaccesible por un periodo
de tiempo.
Además, el sistema actual no cubre los procesos de: recursos humanos, control de
asistencia, contabilidad, administración de almacenes, inicio de trámites, contratos,
solicitudes de trámites y mensajería, consulta de deuda de los clientes, etc.
Por esta razón, la empresa ha decidido migrar toda la información a un nuevo sistema
informático que reemplace totalmente al sistema actual y que reduzca los costos de
mantenimiento.
23
− Requerimiento 2: Aplicar tecnología libre y de código abierto para reducir los
costos de mantenimiento del nuevo sistema.
− Requerimiento 6: Escalar el sistema para que los clientes puedan revisar sus
deudas a través de la página web de la empresa.
24
a) Nivel 1: Contexto del sistema
Clientes Lectores
Bancos
Sistema Dispositivo
Web Móvil
Funcionarios
SeLA
Sistema
Usuario, Roles y
Permisos
Admistrador
Base
De Datos
Al igual que el sistema actual, los lectores de SeLA van a tener acceso a un
dispositivo móvil, esta vez con sistema Android, para descargar sus rutas y
registrar el consumo de agua de todos los clientes. El sistema descargará la
información de los dispositivos móviles para actualizar la información.
25
b) Nivel 2: Contenedores
Clientes
Internet
(FrontEnd)
(BackEnd) (FrontEnd)
Client SPA
Web API Web app
Client SPA
Web app API Bancos
Gateway Lógica del
negocio.
Repositorio
De documentos
ORM
Lectores
Sistema
Usuario, Roles y
Relational Permisos
DataBase
Web app MVC
Admistrador
En este nivel de diseño se puede observar que el sistema va estar separado por
capas. Una capa para BackEnd y otra capa para FrondEnd, ambas capas están
relacionadas con API4 Geteway para el intercambio de información.
26
En la capa del BackEnd se encuentra toda la lógica de la aplicación y el acceso
a los datos, además que el acceso a los datos se realiza a través de ORM5 para
evitar la dependencia del sistema con un gestor de base de datos en específico.
27
arquitectura Modelo Vista controlado (MVC). Este módulo que se va a
comunicar directamente con la base de datos.
c) Nivel 3: Componentes
INTRANET INTERNET
(FrontEnd)
Client SPA Inicio de trámites
(FrontEnd)
Web app
Gestión de trámites Client SPA
[SeLA]
Web app
Catastro y clientes [Bancos]
Mantenimiento
API https
API Lecturas (JWT)
Gateway
Gateway
Cajas y Facturación
Http REST API
(JWT) REST API Recursos humanos
Contabilidad
Repositorio Hidrómetros
De documentos
TCP
Sistema
Usuarios, Roles y Permisos
Web app MVC
TCP
OAuth 2.0
Laravel- Permission
28
Este diagrama muestra la arquitectura a un nivel más detallado, se identifican
los componentes y la tecnología que se va a emplear para la implementación
del sistema propuesto.
Para la capa BackEnd se propone desarrollar proyectos del tipo Web API, se va
a dividir en diferentes proyectos de acuerdo a los módulos o servicios que brinda
la empresa. Cada módulo va a ser independiente entre si logrando alta cohesión
y bajo acoplamiento.
Para la capa del FrontEnd se propone desarrollar una SPA con un Framework
JavaScript como VueJS, para coda módulo se sugiere crear un proyectó
independiente que serán desplegados en contenedores Docker. La
comunicación con los servicios brindados por el backend se lo realizará a través
del protocolo RESTfull, cuya API estarán protegidas por un sistema de
autenticación basado en tokens con la tecnología JWT7.
29
Para la gestión de usuarios, roles y permisos; se propone el implementar del
estándar OAuth 2.0 y la librería Laravel – Permission. Este módulo estará
desplegado en apache y estará implementado con le Framework Laravel bajo
el patrón de arquitectura Modelo Vista Controlador MVC.
INTRANET
TCP 1 1
https
https
«device»
Router
1 *
1 1 *
* 1
Clientes: PC
*
Lectores: Mobile Bancos: PC
Administrador: PC
Funcionario
SeLA: PC
30
Se tiene un servidor de base de datos donde se encuentra el gestor de base de datos
PostgreSQL, y un servidor de aplicaciones donde se encuentran desplegados los
sistemas BackEnd, FrontEnd, y el módulo para el administrador. La comunicación
entre ambos servidores se realiza bajo el protocolo TCP/IP.
PostgresSQL
PostgresSQL
Schema Tramites
DBF Schema SeLAsis
Tabla A
Importar
Tabla A Clon Tabla A Tabla B
datos
Importar
Tabla B Clon Tabla B Schema Catastro
datos
Consultar SQL
... - Select Tabla A
- Insert
Importar Tabla B
Tabla Z Clon Tabla Z
datos
Otro Schema
Tabla X
31
Se va a crear un esquena llamado “SeLAsis” en la nueva base de datos de
PostgreSQL, en este esquema se va a crear las mismas tablas que se tienen en los
DBF del sistema actual y se van a importar los datos a estas nuevas tablas. Se van a
realizar consultas SQL (select, insert y update) en el esquema creado para recorrer los
datos de las tablas importadas e insertarlos en las tablas correspondientes de la nueva
base de datos.
El sistema utiliza ORM para trabajar con la base de datos. Por lo tanto, resulta
fácil cambiar de gestor de base de datos si fuese necesario.
Los módulos del sistema son independientes, por lo que están poco acoplados,
los cambios en un módulo no afectan en gran medida a los otros módulos.
32
− (DRY): Dont Repeat Yourselft
El inicio de sesión se lo realiza una sola ves a través del módulo administrador,
de esta forma evitamos repetir código de inicio de sesión en cada módulo del
sistema
− Orthogonality
− Reversibility
33
3.9 Evaluación de la arquitectura propuesta
34
CONCLUSIONES
Se ha diseñado una estrategia factible para migrar la información actual de las tablas
en DBF a la nueva base de datos.
35
RECOMENDACIONES
36
REFERENCIAS BIBLIOGRÁFICAS
Rumbaugh, J., Jacobson, I., & Booch, G. (2007). El Lenguaje de Modelado Unificado
2.0. Madrid: Perarson Addison Wesley.
Rumbaugh, J., Jacobson, I., & Booch, G. (2007). El lenguaje de Modelado Unificado
Manual de Referencia. Madrid: PEARSON Addison Wesley.
37