Está en la página 1de 20

BikeSafe

Documento de Descripción de Arquitectura

Liseth Yurany Arévalo Yaruro


Cristian Camilo García Barrera
Jhonatan Torres Forero
Danier Elian Gonzalez Ordoñez
Daniel Camilo Pérez Cerón
Guiselle Tatiana Zambrano Penagos

Jeisson Andrés Vergara Vargas

Universidad Nacional de Colombia


Facultad de Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Ingeniería de Sistemas
Arquitectura de software
Bogotá, Colombia
2021
Índice

1. Introducción 1
1.1. Equipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Sistema de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Vistas Arquitectónicas 2
2.1. Vista de Descomposición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.1. Representación en Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.2. Representación en Cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.3. Descripción de la Vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Vista de Componentes y Conectores (C&C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1. Representación Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2. Descripción de la Vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Vista de Modelo de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1. Representación Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2. Descripción de la Vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4. Vista de Capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1. Representación Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2. Descripción de la Vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5. Vista de Despliegue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.1. Representación Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.2. Descripción de la Vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3. Atributos de Calidad 18
3.1. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2. Interoperabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3. Rendimiento y Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4. Alta Disponibilidad y Resiliencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introducción tentable, ya sea de manera rutinaria ó esporádica [1]. Si bien, las
diversas alcaldías han aumentando la disposición de bici-carriles para
1.1. Equipo la movilización de los bici-usuarios y puesto en marcha la construcción
de bici-parqueaderos, no ha podido controlar el excesivo aumento de
Nombre: 1C la inseguridad que aqueja a este grupo. Según datos de la Secretaría
Integrantes: de Movilidad, en el 2020 hubo al menos 10.600 casos de denuncias
por hurto de bicicletas, siendo aproximadamente el 51 % robos a mano
• Liseth Yurany Arévalo Yaru- • Danier Elian Gonzalez Ordo- armada [2], lo que no solo pone en riesgo los bienes materiales de los
ro nez bici-usuarios sino que también corre riesgo su integridad física. Ade-
• Cristian Camilo García Ba- • Daniel Camilo Pérez Cerón más, se estima que estás cifras serían inferiores a la cantidad real de
rrera hurtos si se tiene en cuenta que la mayoría de usuarios que son víctimas
• Guiselle Tatiana Zambrano no realizan una denuncia formal.
• Jhonatan Torres Forero Penagos

1.2. Sistema de Software Teniendo como contexto la problemática anterior, nace el sistema de
software BikeSafe, la cual busca brindar a los usuarios alternativas de
Nombre: BikeSafe rutas seguras y rápidas a través de la creación de grupos para trans-
portarse con base en la hora, punto de origen y llegada de los usuarios.
Logo:
Durante la ruta, el bici-usuario tendrá acceso a datos en tiempo real
1

que le permitan conocer su avance en la ruta seleccionada. Además, el


usuario podrá hacer una calificación de las rutas que haya realizado,
sean propias o conjuntas, con el fin de brindar información que ayude
a otros usuarios que en un futuro deseen toma la misma ruta. El usua-
rio también podrá reportar eventos presentados en la ruta, tales como
robos, presencia de huecos, vías cerradas u otros acontecimientos. Así
mismo, también se podrán reportar puntos de mantenimiento formales
Descripción: En Bogotá se estima que existen alrededor de 1.500.000 e informales, con el fin dar a conocer a los demás usuarios que requieran
bici-usuarios que le han apostado a esta forma de desplazamiento sus- de los servicios allí prestados.
2. Vistas Arquitectónicas
2.1. Vista de Descomposición
2.1.1. Representación en Grafo
2
2.1.2. Representación en Cajas
3
2.1.3. Descripción de la Vista • Funcionalidad Ver kilómetros recorridos: Permite ver las
estadísticas de los kilómetros recorridos
Módulo Usuario: Permite actualizar datos de perfil y gestionar la
mini-red social de la app. • Funcionalidad Ver Rating de rutas: Permite ver la califica-
ción acumulada de las posibles rutas que genera la app.
• Submódulo Cuenta: Permite gestionar todo los datos relacio-
nados con el perfil de usuario Módulo Medio de transporte

◦ Funcionalidad crear cuenta: Permite al usuario crear una • Funcionalidad Agregar medio de transporte: Permite al
cuenta de usuario nuevo usuario registrar una bicicleta en el sistema de software.
◦ Funcionalidad modificar datos: Permite al usuario modi- • Funcionalidad Agregar características: Permite al usuario
ficar los datos de su perfil ingresar las especificaciones del medio de transporte agregado.
◦ Funcionalidad ver perfil: Permite al usuario ver los datos
• Funcionalidad modificar datos: El usuario podrá actualizar
almacenados de su propio perfil
los datos asociados a su medio de transporte agregado en el siste-
◦ Funcionalidad ver mis seguidores: Permite al usuario ver ma de software.
que usuarios siguen su cuenta.
• Funcionalidad Eliminar medio de transporte: El usuario
◦ Funcionalidad acceder a bandeja de entrada: Permite podrá eliminar un medio de transporte agregado previamente.
al usuario ver los mensajes e le han enviado.
4

• Submódulo Social: Permite visualizar y administrar la opciones Módulo Rutas


sociales
• Submódulo Rutas propias
◦ Funcionalidad Ver perfil de otros usuarios: Permite al
◦ Funcionalidad Ingresar origen y destino: El usuario po-
usuario buscar y ver la información de otros usuarios asocia-
drá indicar el origen y destino de su ruta.
dos a la app
◦ Funcionalidad Definir Privacidad de la ruta: El usuario
◦ Funcionalidad Seguir usuarios: Permite al usuario seguir
podrá definir la privacidad, esta podrá ser:
a otros usuarios.
 Privada: El usuario podrá elegir a cuales usuarios com-
◦ Funcionalidad Ver seguidores de otros usuarios: Per-
partir su ruta.
mite ver los seguidores de otros usuarios.
 Pública: La ruta será vista por los demás usuarios de el
Módulo Estadísticas sistema de software.
◦ Funcionalidad Obtener link para compartir ruta: El
• Funcionalidad Ver numero de rutas conjuntas en las que usuario podrá compartir el link de su ruta para que otros
ha participado Permite ver las rutas conjuntas en las que el ciclistas puedan unirse a la misma.
usuario ha participado ◦ Funcionalidad Invitar usuarios Específicos: El usuario
• Funcionalidad Ver tiempo total recorrido: Permite ver las podrá generar una ruta y agregar ciclistas para que estos úl-
estadísticas de tiempo recorrido. timos puedan visualizarla y participar en la misma.
◦ Funcionalidad Calificar ruta : El usuario podrá calificar ◦ Funcionalidad Mostrar notificaciones de problemas en
la ruta al llegar a su destino. la ruta: El usuario podrá recibir en tiempo real notificaciones
• Submódulo Rutas Conjuntas de problemas que se encuentren en su ruta.
◦ Funcionalidad Generar ruta alterna: Si el sistema de
◦ Funcionalidad Buscar rutas conjuntas: El usuario podrá software detecta un problema en la ruta, el usuario podrá ac-
buscar en el sistema de software rutas conjuntas de acuerdo ceder de forma opcional, a una ruta alterna que evite dicha
a su posición. zona.
◦ Funcionalidad Inscribirse a rutas conjuntas: El usuario ◦ Funcionalidad Mostrar distancia restante: El usuario
podrá inscribirse a las rutas conjuntas sugeridas de acuerdo podrá ver en tiempo real la distancia restante de su posición
a su ubicación. a su destino.
◦ Funcionalidad Salir de ruta conjunta: El usuario puede ◦ Funcionalidad Mostrar tiempo restante: El usuario po-
abandonar una ruta compartida en cualquier momento. drá ver en tiempo real el tiempo estimado que le falta para
◦ Funcionalidad Ver listado de rutas conjuntas cerca- llegar a su destino.
nas: El usuario podrá ver el listado de rutas conjuntas más ◦ Funcionalidad Reportar puntos de mantenimiento:
cercanas a su ubicación. Permite al usuario notificar a el sistema de software puntos
◦ Funcionalidad Acceder al chat de participantes: El de mantenimiento de bicicletas, formales e informales.
usuario tendrá acceso al chat con los participantes de una ◦ Funcionalidad Mostrar listado de opciones rutas: Per-
5

ruta compartida seleccionada. mite el usuario ver el listado de las posibles rutas de un tra-
◦ Funcionalidad Ver top de rutas mejores calificadas: El yecto.
usuario podrá ver un listado con las mejores rutas comparti- ◦ Funcionalidad Mostrar indicaciones a seguir: Permite
das de acuerdo a la calificación que los usuarios le hayan dado al usuario ver las indicaciones a seguir según la ruta que haya
a la ruta. seleccionado.
• Funcionalidades compartidas entre los submódulos de rutas y con- ◦ Funcionalidad Ver puntos de mantenimiento cerca-
juntas nos: Permite al usuario ver los puntos de mantenimiento más
cercanos de acuerdo a su ubicación.
◦ Funcionalidad Ver posición actual en la ruta: El usua-
rio podrá ver durante su recorrido la posición actual en la ◦ Funcionalidad Ver detalle de origen, destino, parti-
ruta seleccionada cipante y hora de salida: El usuario podrá ver los datos
asociados a la ruta seleccionada, tales como punto de inicio,
◦ Funcionalidad Reportar problemas durante la ruta:
punto de llegada, participantes, hora de salida, hora de llega-
El usuario podrá reportar problemas tales como:
da y kilómetros.
 Robo ◦ Funcionalidad Generar audio de la ruta en tiempo
 Congestión vial real: El usuario podrá escuchar en tiempo real las indicacio-
 Mal estado de las ciclorutas nes a seguir de acuerdo a la ruta que esté realizando.
2.2. Vista de Componentes y Conectores (C&C)
2.2.1. Representación Gráfica
6
2.2.2. Descripción de la Vista

El sistema de software está conformado por 3 componentes globales: Front-End: Está conformado por dos sub-componentes, uno web y el
Front-End, Back-End y Data. En cada uno de estos, pueden existir 5 ti- otro móvil. La tabla 2 describe las tecnologías utilizadas para el desa-
pos de sub-componetes, los cuales están descritos con más detalle en la tabla rrollo de estas y los integrantes responsables de su implementación, la
1. tabla 3 contiene una descripción detallada de la funcionalidad de cada
uno de estos sub-componentes.
Abreviatura Nombre Descripción
Interfáz de Componente que contiene acceso a un
Nombre Lenguaje Framework Encargado
Programa- conjunto de funcionalidades ofrecidas por
api ción de los microservicios, este es usado como wa_bikesafe
Dart Flutter Todo el equipo
Aplicacio- capa de abstracción por los componentes ma_bikesafe
nes del Front-end. Tabla 2: Tecnologías utilizadas para la creación de los
Contiene la lógica necesaria para sub-componentes del Front-End.
garantizar un conjunto de funcionalidades
ms microservicio de alguno de los módulos o sub-módulos
del sistema (descritos previamente en la
vista de descomposición).
7

Nombre Descripción
Contiene la lógica necesaria para Se encarga de garantizar que el usuario
Base de almacenar y obtener de forma adecuada wa_bikesafe acceda a las funcionalidades completas de su
db
Datos la información procesada por el sistema perfil, medios de transporte y estadísticas.
de software. Se encarga de garantizar que el usuario
Contiene la estructura visual y lógica acceda a las funcionalidades básicas de perfil
Aplicación para interactuar con el usuario y ma_bikesafe
wa y medios de transporte; y completas del
Web garantizar el acceso a las funcionalidades manejo de rutas en tiempo real.
del sistema de software a nivel web.
Contiene la estructura visual y lógica Tabla 3: Descripción de los sub-componentes del Front-End.
Aplicación para interactuar con el usuario y
ma
móvil garantizar el acceso a las funcionalidades
del sistema de software a nivel móvil. Bachk-End: Este componente está conformado por 8 sub-
componentes, 7 de ellos son microservicios y están conectados a un
Tabla 1: Tipo de sub-componentes que conforman el sistema de software API-Gateway de tipo GraphQL, la tabla 4 especifica las tecnologías
utilizadas en la implementación de los sub-componentes y los respon-
A continuación se describirá de forma detallada la funcionalidad de cada sables de realizarla, en la tabla 5 se especifica la función de cada uno
uno de los componentes y sub-componentes definidos para el sistema: de estos.
Nombre Lenguaje Framework Encargado Nombre Descripción
api_gateway JavaScript Express Jhonatan Modela y gestiona la creación de rutas y los
ms_statistic Go Revel Torres ms_route elementos que lo conforman como el manejo
Elian de chats y sus miembros.
ms_account Typescript Express.js
Gonzalez Modela y gestiona la creación de los medios
Daniel ms_transport de transporte usados por los usuarios,
ms_social Java SpringBoot
Perez facilitando la actualización de estos datos.
Cristian Recopila información relacionada con los
ms_real_time Elixir Phoenix
García usuarios para arrojarle de forma
ms_statistic
Tatiana personalizada un ponderado de la actividad
ms_route JavaScript Express
Zambrano de este en la plataforma.
Liseth
ms_transport Python Django Tabla 5: Descripción de los sub-componentes del Back-End.
Arevalo

Tabla 4: Tecnologías utilizadas para la creación de los


sub-componentes del Front-End. Bases de Datos: Este componente está conformado por 5 sub-
componentes de bases de datos, los cuales se encargan de almacenar
todos los datos relacionados con los usuarios, medios de transporte y
8

rutas. La tabla 6 describe las tecnologías utilizadas para la creación de


las bases de datos y la tabla 7 detalla la funcionalidad de cada una.
Nombre Descripción
Se encarga de brindarle una capa de Nombre Gestor Tipo Encargado
abstracción a los sub-componentes Elian
api_gateway
Front-End para acceder a las db_user MySQL Relacional Gonzalez
funcionalidades de los microservicios. Daniel
Modela y gestiona la creación de usuarios, Perez
ms_account como el manejo de su información personal Tatiana
y las sesiones manejadas por el sistema. db_route MongoDB No Relacional
Zambrano
Se encarga de gestionar la la información Postgre Cristian
ms_social pública de los usuarios y la interacción entre db_real_time Relacional
(PostGIS) Garcia
los perfiles de los mismos. Liseth
Gestiona todas las funcionalidades que el db_transport MySQL Relacional
Arevalo
usuario puede requerir durante el recorrido Jhonatan
ms_real_time db_statistics Postgre Relacional
de una ruta, como el reporte de problemas o Torres
conocer su posición actual.
Tabla 5 - Continúa en la siguiente columna. Tabla 6: Tecnologías utilizadas para la creación de las bases de datos.
Nombre Descripción
Almacena los datos básicos y de autenticación
db_user de los usuarios registrados en el sistema de
software, así como la relación de seguidores
Almacena los datos necesarios para localizar
db_real_time al usuario y reportar problemas durante la
ruta.
Almacena los datos necesarios para la
db_route creación de rutas, mensajes, además de la
información básica de los usuarios.
Almacena los datos de los medios de
db_transport
transporte y su relación con los usuarios.
Almacena los datos generales de los usuarios
db_statistic
y las rutas.

Tabla 7: Descripción de las bases de datos.

2.3. Vista de Modelo de Datos


9

2.3.1. Representación Gráfica


db_user
db_statistic
10

Figura 1: Esquema del documento statistics

db_transport
db_real_time

db_route
11
2.3.2. Descripción de la Vista ◦ Seguidores: Esta entidad representa la tabla que relaciona
los registros de usuario como seguido y seguidor.
Modulo Usuario
Atributos:
• Elementos  id_grupo: atributo de tipo entero que es la llave prima-
ria de la entidad
◦ Usuarios: Esta entidad representa la tabla que almacena los
 id_u_seguidor: atributo de tipo entero que es la llave
datos básicos de los usuarios registrados en el sistema de soft-
foránea que representa la relación con la tabla usuarios.
ware.
Atributos:  id_u_seguido: atributo de tipo entero que es la llave
foránea que representa la relación con la tabla usuarios.
 id_usuario:atributo de tipo entero que es la llave pri-
maria de la entidad • Relaciones
 cédula_usuario: atributo de tipo entero que almace- ◦ Usuarios tiene una relación de uno a uno con Autenticaciones
na la cédula ingresada por el usuario, y además debe ser ◦ Usuarios tiene una relación de muchos a muchos con seguido-
único. res.
 nombre_usuario: atributo de tipo string que almacena
el nombre ingresado por el usuario. Módulo de Estadísticas
 apellido_usuario: atributo de tipo string que almacena • Elementos:
12

el apellido ingresado por el usuario. ◦ Users: Esta entidad almacena los datos básicos de los usua-
 teléfono_usuario: atributo de tipo entero que almace- rios.
na el teléfono ingresado por el usuario. Atributos:
 email_usuario: atributo de tipo string que almacena la  id: Atributo de tipo entero y llave primaria de la entidad.
dirección de correo electrónico ingresado por el usuario,  uid: Atributo de tipo string con el que se identifica al
y además debe ser único. usuario dentro de la interfaz gráfica.
◦ Autenticaciones: Esta entidad representa la tabla que al- ◦ RouteTypes: Esta entidad almacena los tipos de rutas.
macena los datos de autenticación. Atributos:
Atributos:  id: Identificador de tipo entero y llave primaria de la en-
 id_autenti: atributo de tipo entero que es la llave pri- tidad.
maria de la entidad  name: Atributo de tipo string que representa el nombre
 id_usuario: atributo de tipo entero que es la llave forá- del tipo de ruta.
nea que representa la relación con la tabla usuarios. ◦ Routes: Esta entidad almacena los datos básicos de cada ru-
 usuario_autenti: atributo de tipo string que almacena ta.
el dato usuario para autenticación. Atributos:
 clave_autenti: atributo de tipo string que almacena el  id: Identificador de tipo entero y llave primaria de la en-
dato contraseña (cifrada) para autenticación. tidad.
 routeTypeId : Atributo de tipo entero que es llave fo-  startTime : Atributo de tipo datetime que representa la
ránea con la entidad RouteType y representa el tipo de fecha y hora en la que se inició el viaje.
ruta.  endTime : Atributo de tipo datetime que representa la
 uid: Atributo de tipo string con el que se identifica a la fecha y hora en la que finalizó el viaje.
ruta dentro de la interfaz gráfica.
Modulo Transporte
 distanceInKM : Atributo de tipo decimal que represen-
ta la distancia total que mide la ruta en kilometros. • Elementos
 createdAt : Atributo de tipo datetime que representa la ◦ Transporte: Esta entidad permite almacenar la información
fecha de creación de la ruta. de los medios de transporte registrados en el sistema de sof-
◦ UserRoutes: Esta entidad almacena las rutas en las que se ware.
encuentra inscrito cada usuario. Atributos:
Atributos:  id_transporte:Atributo de tipo entero que es la llave
 id: Identificador del invitado o participante. primaria de la entidad.
 userId: Atributo de tipo entero que es llave foránea con  tipo_transporte: Atributo de tipo string que indica
la entidad Users y representa el usuario que se inscribió cuál es el medio de transporte agregado por el usuario.
a la ruta.  carac_transporte: Atributo de tipo string en el cual se
 routeId: Atributo de tipo entero que es llave foránea con especifican las cualidades asociadas a el medio de trans-
13

la entidad Routes y representa la ruta a la que se inscribió porte.


el usuario.  color_transporte: Atributo de tipo string que indica el
 uid: Atributo de tipo string con el que se identifica a la color del medio de transporte.
ruta del usuario dentro de la interfaz gráfica. ◦ Usu_trans: Esta entidad permite almacenar la información
 rating: Atributo de tipo entero que representa la califi- de los medios de transporte asociados a un usuario.
cación que el usuario le dio a la ruta. Atributos:
 createdAt : Atributo de tipo datetime que representa la  id_transporte:Atributo de tipo entero que es la llave
fecha en la que el usuario se inscribió a la ruta. primaria de la entidad.
◦ Trips: Esta entidad almacena los datos básicos de los viajes  id_usuario: Atributo de tipo entero que es el id asociado
realizados por un usuario en una ruta específica. a un usuario al cual se le asociará un medio de transporte.
Atributos:
• Relaciones
 id: Atributo identificador primario de la entidad.
◦ La entidad transporte tiene una relación de 1 a 1 con
 userId: Atributo de tipo entero que es llave foránea con usu_trans .
la entidad UserRoutes y representa el usuario y la ruta
que se recorrió. Módulo Rutas
 uid: Atributo de tipo string con el que se identifica al A continuación se explicarán los elementos que conforman el documen-
viaje dentro de la interfaz gráfica. to ms_route
• routeId: Identificador de la ruta conjunta. ◦ latitude: Latitud de la ruta conjunta, es un valor numérico.
• creator: Contiene el Id del usuario que creó la Ruta. ◦ longitude: Longitud de la ruta conjunta, es un valor numé-
• private: Es un valor booleano que indica si la ruta es privada o rico.
no. • chat: Contiene el Id del chat que almacenará las conversaciones
• done: Es un valor booleano que indica si la ruta ya ha culminado. entre los miembros de la ruta conjunta, está compuesto por:
• members: Lista de identificadores de los usuarios que participan ◦ chatId: Identificador del chat.
en la ruta conjunta. ◦ name: Nombre del chat.
• rating: Es el promedio de calificación dada por los participantes ◦ message: lista de Ids de los mensajes individuales generados
de la ruta. por los usuarios, está compuesto por:
• origin: Contiene el Id de una posición registrada la cual está  creator: contiene el Id del usuario que creó el mensaje.
compuesta por:  content: contenido del mensaje realizado.
14
2.4. Vista de Capas
2.4.1. Representación Gráfica
15
2.4.2. Descripción de la Vista
Presentation:
La capa física Presentation está compuesta por wa_bikesafe y
ma_bikesafe. Tanto wa_bikesafe como ma_bikesafe tienen una subar-
quitectura de capas, en la cual la capa UI hace uso de la capa Contro-
llers y esta a su vez hace uso de la capa Repositories. La capa física
Presentation tiene permitido hacer uso de la capa física Logic.

Logic:
En la capa física Logic se encuentra el componente de api_gateway
el cual está conformado por las capas Server, Schema y Provider, la
cual puede hacer uso de los microservicios ms_statistic , ms_account,
ms_social, ms_real_time , ms_route, ms_transport. Los microservi-
cios ms_social, ms_real_time y ms_route, tienen una subarquitectura
basada en model, controller y view. El microservicio ms_statistic tie-
ne una subarquitectura hexagonal, el microservicio ms_transport con-
tiene las capas View, Serializer y Model, por ùltimo el microservicio
ms_account tiene una subarquitectura de capas las cuales son Resol-
16

ver, Types y model. La capa Logic hace uso de la capa física Data.

Data:
La capa física Data contiene las componentes de bases de datos
db_statistic, db_user, db_realtime, db_transport y db_route. Cada
uno de estos contiene sus respectivas capa de Database.
2.5. Vista de Despliegue
2.5.1. Representación Gráfica
17
2.5.2. Descripción de la Vista 3. Atributos de Calidad
3.1. Seguridad
3.2. Interoperabilidad
3.3. Rendimiento y Escalabilidad
3.4. Alta Disponibilidad y Resiliencia
La vista de despliegue contiene la definición de los componentes descritos
en la vista C&C, especificando el entorno de ejecución, el contenedor y el Referencias
nodo en el que se encuentra cada componente y el puerto que se utiliza para
realizar el despliegue. [1] Más del 50 % de robos de bicicletas en Bogotá se dan por atraco a mano
armada. Disponible en: https://www.infobae.com/america/colombia/
2021/02/18/mas-del-50-de-robos-de-bicicletas-en-bogota-se-
dan-por-atraco-a-mano-armada/
En el Nodo1 se encuentran desplegados todos los microservicios, el api [2] El 51 % del hurto de bicicletas en Bogotá se da por atraco con arma. Dis-
y el componente web, cada uno en su respectivo contenedor. En el Nodo2 ponible en: https://www.lafm.com.co/bogota/el-51-del-hurto-de-
se encuentran desplegados los componentes de bases de datos desarrollados
18

bicicletas-en-bogota-se-da-por-atraco-con-arma
en MySql. En el Nodo3 se encuentran desplegados los componentes de ba-
ses de datos desarrollados en PosgreSQL. El componente de base de datos [3] Discovery and Visualization of NoSQL Database Schemas. Diego Sevilla.
db_route_prod se implementó en el servicio Atlas. El componente móvil se (25 de Mayo de 2018). Disponible en: https://modeling-languages.
encuentra desplegado en Android. com/discovery-and-visualization-of-nosql-database-schemas/

También podría gustarte