UNIVERSIDAD NACIONAL DEL CENTRO DE LA PROVINCIA DE
BUENOS AIRES
FACULTAD DE CIENCIAS EXACTAS
Tesis de Grado en Ingeniería de Sistemas
“Sistema de Asistencia Vecinal Integral, basado en agentes
inteligentes”
Autor
Jesús Matías Ezequiel Tangorra
Directores
Dr. Luis Berdun, Dr. Alvaro Soria
Resumen
Ante eventualidades cotidianas, se recurre a los medios de comunicación disponibles.
Existen situaciones para las cuales estas herramientas no bastan, ya sea porque no están
preparadas para ser instrumentos de comunicación ante determinadas eventualidades o
bien, porque su uso es tomado a la ligera por sus usuarios.
En este trabajo se presenta una herramienta que permite mantener una red social privada
entre un grupo de vecinos, se denominó Sistema de Asistencia Vecinal Integral (SAVI).
El objetivo de SAVI es la protección de familias y hogares de los usuarios en base a la
comunicación e interacción entre vecinos.
El trabajo propuesto no busca reemplazar los actuales sistemas de seguridad o alarmas, y
menos aún disminuir el trabajo de las fuerzas policiales. Sino que busca
complementarlos, usando tecnologías cercanas a todos, además de la utilización de
canales de comunicación cotidianos. No busca crear brechas entre la sociedad, sino que
alienta la comunicación en una red privada y de confianza. Da herramientas de libre
acceso para responder antes eventos cotidianos utilizando canales seguros.
En el presente documento se van a mostrar las bases teóricas en las que nace la idea y sus
fundamentos, así también como todo lo relacionado a la implementación, realización y
caso de estudio. El desarrollo de SAVI implicó la integración de los conocimientos
adquiridos durante la carrera, el resultado es una aplicación que contribuye a la seguridad
vecinal.
Contenido
Capítulo 1: Introducción ... 8
Introducción ... 8
Motivación ... 9
Problemática... 10
Solución Propuesta ... 11
Organización del documento... 13
Capítulo 2: Contexto Actual... 15
Indicadores de seguridad en Argentina ... 15
Contexto Social ... 17
Contexto Económico ... 18
Situación regional ... 20
Ley N.º 12.154 de Seguridad Pública ... 21
Seguridad y tecnologías. ... 23
Centro de Monitoreo Tandil (CMT) ... 25
Seguridad Privada ... 25
Capítulo 3: Elección de tecnologías ... 28
Marco tecnológico ... 28
Android ... 28
Firebase ... 33
Mapas ... 39
Agentes y Multiagentes ... 40
Capítulo 4: Diseño e implementación ... 45
Diagrama general de interacción ... 45
Diagrama de componentes ... 45
Modelo de Casos de Uso ... 46
Especificación de Casos de Uso ... 48
Diagrama de clases ... 56
Modelo de Datos NoSQL ... 57
Capítulo 5: Sistema de Asistencia Vecinal Integral ... 58
Secciones ... 58
Registro ... 58
Ingreso ... 59
Perfil ... 60
Menú principal ... 63
Familia ... 64
Creación de grupo vecinal ... 67
Vinculación de usuarios a grupo vecinal... 68
Alerta grupo ... 70
Respuesta alerta ... 73
Configuración de cuenta ... 74
Notificación ... 76
Proyectos Similares ... 77
Alerta Tandil ... 77
Alerta Buenos Aires ... 79
Strix LoJack ... 80
Comparación ... 81
Capítulo 6: Evaluación y resultados ... 83
Estado inicial ... 83
Autenticación ... 83
Base de datos ... 84
Storage ... 84
Cuentas ... 85
Perfiles ... 87
Suscripción a grupos ... 89
Caso de estudio 1 ... 95
Alerta ... 95
Caso de estudio 2 ... 98
Configuración de perfil ... 98
Alerta ... 99
Caso de estudio 3 ... 101
Informar autoridades ... 103
Caso de estudio 4 ... 106
Capítulo 7: Conclusiones ... 109
Contribuciones. ... 109
Limitaciones ... 110
Trabajos futuros ... 110
Índice de figuras
Figura 1.1 Esquema conceptual de la interacción entre el sistema y los usuarios ... 12
Figura 2.1 Evolución del índice de victimización LICIP [27], 2008-2017 ... 16
Figura 2.2 Mapa de robos por provincia. Tasa por 100.000 habitantes [27]. ... 17
Figura 2.3 Costos del crimen, comparación internacional, 2014. ... 19
Figura 2.4 Costos del crimen (límite superior) como porcentaje del PBI, ALC, 2014 ... 19
Figura 2.5 Cantidad de habitantes por miles, Tandil según datos oficiales INDEC [3]... 20
Figura 2.6 “Mapa del delito” Tandil [24] ... 20
Figura 2.7 Distribución de cámaras de seguridad Tandil – Datos Oficiales ... 23
Figura 2.8 Licitación privada 29 – 2018 Municipalidad de Tandil [25]. ... 24
Figura 2.9 Domo exterior tipo PTZ ... 24
Figura 2.10 Cámara fija, tipo IP, bullet. ... 24
Figura 2.11 Centro de Monitoreo Tandil (CMT) ... 25
Figura 2.12 Mapa de empresas prestadoras de servicios de seguridad privada. ... 26
Figura 2.13 Kit de alarma exterior autoinstalable. ... 27
Figura 3.1 API Distribución de versiones [16] ... 30
Figura 3.2 Ciclo de vida Activity [17] ... 33
Figura 3.3 Latitud y Longitud ... 39
Figura 3.4 Una taxonomía de clases de agentes ... 42
Figura 3.5 Atributos primarios de agentes. ... 42
Figura 4.1 Diagrama conceptual de interacción SAVI. ... 45
Figura 4.2 Diagrama de componentes SAVI. ... 46
Figura 4.3 Diagrama de casos de uso SAVI. ... 47
Figura 4.4 Diagrama de clases SAVI ... 56
Figura 4.5 Ejemplo Base de datos NoSQL ... 57
Figura 5.1 Flujo pantallas relacionadas con el acceso del usuario. ... 59
Figura 5.2 Mockup pantalla SAVI. Sección registro/login. ... 60
Figura 5.3 Mockup de pantalla SAVI. Sección Perfil ... 61
Figura 5.4 Ejemplo captura de Latitud y Longitud ... 62
Figura 5.5 Mockup de pantalla SAVI. Sección Domicilio. ... 63
Figura 5.6 Instantánea base de datos, Domicilios... 63
Figura 5.7 Mockup de pantalla SAVI. Sección menú principal. ... 64
Figura 5.8 Mockup de pantalla SAVI. Secciones familiares. ... 65
Figura 5.9 Mockup de pantalla SAVI. Sección vista código personal. ... 66
Figura 5.10 Mockup de pantalla SAVI. Sección creación de grupo vecinal. ... 67
Figura 5.11 Flujo pantallas relacionadas con la vinculación de usuarios a un grupo. ... 68
Figura 5.12 Mockup de pantalla SAVI. Sección menú principal lateral. ... 69
Figura 5.13 Mockup de pantalla SAVI. Sección vista de código grupo. ... 69
Figura 5.14 Mockup de pantalla SAVI. Sección creación de alerta vecinal. ... 70
Figura 5.15 Diagrama de flujo entre las pantallas relacionadas con las alarmas. ... 71
Figura 5.16 Diagrama de flujo entre las pantallas relacionadas con el informe de alarmas. ... 72
Figura 5.17 Mockup de pantalla SAVI. Sección respuesta alerta vecinal. ... 73
Figura 5.18 Mockup de pantalla SAVI. Sección configuración cuenta. ... 75
Figura 5.19 Mockup de pantalla SAVI. Sección creación de notificación. ... 76
Figura 5.20 Captura base de datos, Notificación. ... 76
Figura 5.20 Publicación de aplicación “Alerta Tandil” – Play Store. ... 77
Figura 5.21 Captura de "Alerta Tandil". ... 78
Figura 5.22 Captura de Alerta Buenos Aires. ... 79
Figura 5.23 Captura de pantalla de Strix LoJack. ... 81
Figura 6.1 Instantánea del estado inicial de la utilidad autenticación Firebase. ... 83
Figura 6.2 Instantánea del estado inicial de la base de datos Firebase ... 84
Figura 6.3 Instantánea del estado inicial de la utilidad storage Firebase. ... 84
Figura 6.5 Captura pantalla SAVI. Sección registro/login. ... 85
Figura 6.6 Instantánea autenticación Firebase, creación de cuentas. ... 86
Figura 6.7 Instantánea base de datos, creación de cuentas ... 86
Figura 6.8 Captura de pantalla SAVI. Sección creación perfil. ... 87
Figura 6.9 Captura de pantalla SAVI. Sección elección domicilio. ... 87
Figura 6.10 Instantánea estado base de datos Firebase. ... 88
Figura 6.11 Sección diagrama de clases, SAVI ... 88
Figura 6.12 Distribución de usuario para la generación del experimento. ... 89
Figura 6.13 Captura de pantalla SAVI. Sección vista del código QR Usuario 3. ... 90
Figura 6.14 Captura de pantalla SAVI. Sección vista del código QR Usuario 4. ... 90
Figura 6.15 Captura de pantalla SAVI. Sección vista de integrantes del grupo familiar antes de agregar familiares. ... 91
Figura 6.16 Captura de pantalla SAVI. Sección vista de integrantes del grupo familiar después de agregar familiares. ... 91
Figura 6.17 Estado de Base de datos antes que el usuario 3 tenga grupo familiar. ... 92
Figura 6.18 Estado de Base de datos después de que el usuario 3 tenga grupo familiar. ... 92
Figura 6.19 Captura pantalla SAVI. Sección creación de grupo vecinal ... 93
Figura 6.20 Instantánea de la Base de datos, luego de la creación del grupo vecinal ... 93
Figura 6.21 Captura de pantalla SAVI. Sección vista de grupo vecinal. ... 94
Figura 6.22 Captura de pantalla, SAVI. Sección vista código grupo vecinal. ... 94
Figura 6.23 Captura de pantalla SAVI. Sección creación de alerta vecinal. ... 95
Figura 6.24 Estado de base de datos antes de crear la alerta vecinal. ... 95
Figura 6.25 Estado de base de datos después de crear la alerta vecinal. ... 95
Figura 6.25 Captura de pantalla SAVI. Sección respuesta ante alerta vecinal presente. ... 96
Figura 6.26 Captura informe de alerta. ... 96
Figura 6.27 Instantánea base de datos después de crear una nueva alerta vecinal... 97
Figura 6.28 Captura pantalla SAVI. Sección configuración, vacaciones. ... 98
Figura 6.29 Instantánea base de datos, configuración de cuenta. ... 98
Figura 6.30 Captura pantalla SAVI. Sección creación de alerta vecinal. ... 99
Figura 6.31 Instantánea de estado de base de datos, luego de crear segunda alerta. ... 99
Figura 6.32 Instantánea de estado de base de datos, respuesta automática. ... 100
Figura 6.33 Captura pantalla SAVI. Sección creación de alerta vecinal. ... 102
Figura 6.34 Captura pantalla SAVI. Sección respuesta de alerta vecinal. ... 102
Figura 6.35 Captura pantalla SAVI. Sección respuesta de alerta vecinal. ... 103
Figura 6.36 Captura pantalla Teléfono. Sección informar autoridades, elección policía. ... 103
Figura 6.37 Captura pantalla SAVI. Secciones alertas de grupo. ... 104
Figura 6.38 Captura pantalla SAVI. Sección acceso a resumen de alertas/notificaciones. ... 104
Figura 6.39 Captura pantalla SAVI. Sección alertas familia. ... 105
Figura 6.40 Captura pantalla SAVI. Sección acceso a resumen de alertas/notificaciones. ... 105
Figura 6.40 Captura pantalla SAVI. Sección creación de notificación. ... 107
Figura 6.42 Captura pantalla SAVI. Sección creación de notificación. ... 107
Figura 6.43 Captura pantalla SAVI. Sección acceso a resumen de alertas/notificaciones. ... 107
Figura 6.44 Captura pantalla SAVI. Sección vista de notificaciones. ... 107
Capítulo 1: Introducción
Durante este capítulo se expondrá la problemática, la motivación y la solución propuesta
para la realización de un Sistema de Alerta Vecinal Integral. Se plantean las razones que
motivaron la elección del tema, los fundamentos que lo sustentan y por último los
objetivos del trabajo, así como también la forma en la que se estructura el presente
documento.
Introducción
“La seguridad interior es la situación de hecho basada en el derecho en el cual se
encuentra resguardadas la libertad, la vida y el patrimonio de los habitantes, sus derechos
y garantías y la plena vigencia de las instituciones del sistema representativo, republicano
y federal que establece la CONSTITUCIÓN NACIONAL” [1].
Como se establece en la Constitución Nacional Argentina, el derecho de seguridad
interior es privilegio de todos los habitantes. El sistema de seguridad interior tiene como
fin determinar políticas de seguridad, así como planificar, coordinar, dirigir, controlar y
apoyar el esfuerzo nacional de policía dirigido al cumplimiento de estas políticas.
Según la Encuesta Nacional de Victimización [2] Durante 2016, el 13,6% de los hogares
sufrió al menos uno de estos delitos: robo o hurto en vivienda; el robo o hurto de auto,
camioneta o camión; el robo o hurto de autopartes, el robo o hurto de moto o ciclomotor
y el secuestro extorsivo de uno de los residentes de la casa. El robo de en las casas fue el
que más porcentaje obtuvo, con el 8 por ciento. Además, se informó que el 85,4% de las
casas cuentan con alguna medida de seguridad con el objetivo de protegerse de la
delincuencia.
Si analizamos la seguridad presentada en los hogares, los sistemas de defensa usados
varían en complejidad y costo. En lo primero que se piensa cuando se habla de seguridad
en el hogar es un sistema de alarmas como las provistas por empresas privadas, que
cobran un costo de instalación y opcionalmente un costo de monitoreo. También se puede
recurrir a métodos de seguridad que tratan de impedir o desalentar posibles intrusiones
en el hogar, sean rejas, puertas de seguridad, etc.
Existe paralelamente sistemas vecinales, que usan la comunicación como defensa ante
diferentes eventos, por ejemplo, si una puerta está abierta de madrugada y es observado
La informalidad de los medios de comunicación usados por el vecino que desea informar
la anormalidad de la situación es un problema, ya que estos medios no están preparados
para ser instrumentos de comunicación ante determinadas eventualidades o bien, porque
su uso es tomado a la ligera por sus usuarios.
Motivación
El Instituto de Estadísticas y Censos [3] realizó por primera vez un estudio que revela el
escepticismo de parte de la sociedad frente a los que administran el Estado. De acuerdo
con el estudio, más del 66% de los delitos contra las personas y casi la mitad de los que
pasaron en los hogares durante 2016 no fueron denunciados "por desconfianza hacia las
autoridades". La información la reveló la Encuesta Nacional de Victimización 2017 [2],
que se hizo por primera vez, ejecutada entre el Instituto Nacional de Estadística y Censos
y el Ministerio de Seguridad de la Nación. "La desconfianza en las autoridades es el
principal motivo de no denuncia de los delitos", señaló el informe y, en ese sentido,
precisó que el 34,5% de los delitos contra el hogar y el 34,7% de los delitos contra las
personas "no fueron denunciados por este motivo".
Si analizamos la manera en la que un vecino procede ante una determinada emergencia,
tenemos que si observa una situación que amerita la alerta de los demás miembros de la
comunidad, no tiene una herramienta dedicada para contribuir de una posición segura
ante la posible eventualidad que pueda tener el propietario de la casa. Este tipo de
herramientas vecinales de alarma se va a basar el presente trabajo, es decir la protección
comunitaria entre los propios vecinos.
Un estudio presentado por Kantar IBOPE Media Argentina [5] indica que, en 2016 el
60% de los argentinos declaró poseer un teléfono inteligente, lo que implica un
incremento del 55% respecto al año anterior (39%), y las personas de nivel
socioeconómico bajo presentan mayor incremento en la posesión de este dispositivo.
Respecto al año anterior, el crecimiento es del 87%, pasando del 28% al 53%, que
declaran tener este tipo de equipo. Además, y en línea con el acercamiento de los adultos
mayores a las tecnologías de la comunicación, se observa un incremento del 132% en la
posesión de smartphones dentro del rango de 65 a 75 años, pasando del 9% al 20% que
declaran tener este tipo de teléfonos celulares.
Actualmente gracias a la evolución de los sistemas embebidos junto al bajo costo y
[7]. El objetivo de este paradigma es convertir los objetos que nos rodean en objetos
inteligentes de forma tal que, comunicándose a través de Internet, puedan percibir lo que
sucede en su entorno y poder reaccionar frente a ello. De manera simplificada, la internet
de las cosas es una red de dispositivos que pueden conectarse a internet, logrando que
máquinas normales y corrientes se vuelvan “Smart” [7].
Todos los objetos inteligentes operan como sensores, como actuadores o ambas a la vez.
De este modo, cuando están conectados a internet permitiendo su acceso para recibir o
enviar información y proceder según sea estipulado [7]. La combinación de internet y las
tecnologías emergentes como la localización en tiempo real, sensores embebidos en
objetos cotidianos y la comunicación a alta velocidad y bajo costo, han permitido la
concepción de objetos inteligentes que tienen la capacidad de no sólo comprender lo que
sucede a su alrededor sino también influir en el ambiente en el que se encuentra.
Problemática
Actualmente, existen canales de transmisión secundarios o informales para la generación
de alertas vecinales, ya sea una cadena de avisos, un grupo de WhatsApp, un grupo de
Facebook. Si tomamos por el ejemplo WhatsApp, según datos oficiales provistos por la
corporación, “Actualmente mil millones de personas están usando WhatsApp. Esto
quiere decir que casi una de cada siete personas en el mundo usa WhatsApp cada mes
para mantenerse en contacto con sus seres queridos, amigos, y familiares.” [6] estos
números sirven para dar una magnitud de lo masificada que está la tecnología de
mensajería personal. La informalidad de los medios de comunicación que se utiliza para
estar en comunicación, son sobreestimados por los usuarios y se terminan desviando de
su objetivo principal.
Estos métodos informales de comunicación ante eventuales problemas de seguridad,
normalmente se terminan desviando del objetivo principal para el que fueron creados por
falta de compromiso de sus integrantes, volviéndose obsoletos. El ejemplo más simple
de esto es un grupo de WhatsApp que al aumentar el número de integrantes comienza a
ser utilizado para distintas cuestiones de comunicación que no forman parte del objetivo
original, recordar cumpleaños, avisos de ventas, entre otras tantas cuestiones, haciendo
que el usuario no revise los mensajes o directamente salga del grupo. El método informal
También existen alarmas vecinales las cuales son también son llamadas comunitarias,
estos sistemas no son más que simples altavoces conectados a controles similares a lo
que se usan para las alarmas de los autos. Estas alarmas son activadas de manera remota
por alguno de los diferentes usuarios, ante determinados episodios. La ciudad de Rosario
fue pionera en implementar estos métodos para combatir y desalentar hechos delictivos,
así por la Ordenanza 7914 se creó en el ámbito de la Municipalidad de Rosario el
Subprograma de Alarmas Comunitarias, como parte integrante y complementaria del
Programa Municipal de Seguridad Urbana (artículo 1) [6]. Aunque estos métodos de
alertas son más formales que los nombrados anteriormente. Sufren de ser instrumentos
que carecen de inteligencia. Si bien cumplen con su objetivo básico, es decir alertar. Los
vecinos además de escuchar la sirena no pueden deducir si la alarma pertenece a un
incendio, robo o actitud sospechosa sin salir de la seguridad de sus hogares. El alcance
de estas alarmas está acotado a una distancia máxima, la cual es el radio de audición de
las propias sirenas de las alarmas.
Solución Propuesta
En base a la problemática de los medios de comunicación informales y los sistemas
carentes de inteligencia, nace la idea del Sistema de Asistencia Vecinal Integral (SAVI).
El foco de SAVI es la satisfacción de una necesidad que es primordial, la seguridad. Si
una alarma está sonando de madrugada, se da una herramienta para contribuir de una
manera segura y remota de ayuda. Si alguien se encuentra en un evento social, tengo la
seguridad que su grupo de vecinos estas contribuyendo a la seguridad de su hogar. Si se
quisiera informar algo sospechoso o irregular en la comunidad, lo haga de manera rápida
y sencilla.
SAVI representa la creación de un sistema de ayuda a la comunidad, su objetivo es la
realización de un sistema de asistencia vecinal integral. Se da medios de comunicación
especialmente dedicados a la seguridad. No solo se trata de un sistema que pueda hacer
que los vecinos informen sobre determinadas situaciones, sino que da la posibilidad de
dar respuesta personalizadas e inteligentes. El sistema permite en base a sistemas
interactivos saber la ubicación precisa del dueño de casa generado alertas previamente
cargadas. Se da la posibilidad de poder crear grupos de vecinos, los cuales serán los
encargados generar las alertas a los demás, en caso de determinadas situaciones, ya sea
SAVI representa la creación de un sistema de ayuda a la comunidad, su objetivo es la
realización de un sistema de asistencia vecinal inteligente. Se da medios de comunicación
especialmente dedicados a la seguridad. No solo se trata de un sistema que pueda hacer
que los vecinos informen sobre determinadas situaciones, sino que da la posibilidad de
dar respuesta personalizadas e inteligentes. El sistema permite en base a sistemas
interactivos saber la ubicación precisa del dueño de casa generado alertas previamente
cargadas. Se da la posibilidad de poder crear grupos de vecinos, los cuales serán los
encargados generar las alertas a los demás, en caso de determinadas situaciones, ya sea
incendios, robos o actitudes sospechosas.
Figura 1.1 Esquema conceptual de la interacción entre el sistema y los usuarios
Como se observa en la figura 1.1 el sistema dará a los usuarios la posibilidad de crear una
red de confianza, con sus vecinos, familiares y conocidos (1). Los usuarios pertenecientes
a cada grupo de confianza serán los encargados de generar las "Alertas Vecinales" (2)
que tendrán efecto sobre los grupos, estas alertas serán informadas a todos los miembros
del grupo. Teniendo en cuenta el contexto de cada usuario se brindará una asistencia
inteligente. Los integrantes del “Grupo de Confianza” serán los encargados de crear las
alertas, estas alertas serán el disparador de una serie de chequeos (3). Los tipos de alertas
ampliado fácilmente, por ejemplo, se podría informar que la alarma de un vecino en
particular está sonando.
Seguido del evento disparador, en este caso una “Alerta Vecinal”, el sistema SAVI
(Sistema de Asistencia Vecinal Inteligente) buscará si ese determinado vecino dejó
configurada una alerta (3), el vecino podría haber definido en la aplicación que está de
vacaciones, entonces SAVI generaría una respuesta al grupo con dicha información (9) y
generaría la alerta que será informada al dueño de la casa (4). Otro determinado curso de
acción es poder determinar la ubicación del teléfono smartphone de usuario mediante
geolocalización (8) e informar dicha posición a los demás integrantes del grupo (10). Si
la aplicación determina que el dueño de casa tiene el teléfono apagado o sin señal se
informará al grupo dicha situación (a los usuarios dentro del grupo de confianza). Una
situación similar ocurre si la aplicación determina la posición del dueño de la casa y la
misma es diferente al domicilio en cuestión. Estos escenarios permiten apreciar cómo la
aplicación toma un rol activo e inteligente en el diagnóstico de situaciones de emergencia,
permitiendo que los usuarios del grupo puedan determinar su accionar correspondiente.
Si el dispositivo del usuario está activo se generará una alerta que indica el motivo de
esta (5) y si uno o más integrantes del grupo fueron los que la reportaron. De esta forma
el usuario podrá transmitir un mensaje (6) al grupo informado que está de vacaciones,
que no se encuentra en la casa o que no presten atención a la alerta generada.
El sistema permite conectividad en conexiones con WIFI y datos de internet. Se utilizan
los sensores de los teléfonos de manera remota, ya sea sensores GPS, cámara, micrófono,
etc. Incluso se estima el agregado de dispositivos secundarios como fuentes de
información, por ejemplo, un Smartphone antiguo se puede transformar en una cámara
de vigilancia a demanda, o simplemente un micrófono para escuchar lo que está
sucediendo.
En base a lo investigado, ningún sistema de los presentes hoy en día permite dar
respuestas precisas e inteligentes en base a la ubicación actual del dueño de casa, a la
disponibilidad de la línea telefónica, o a un mensaje precargado.
Organización del documento
En el capítulo 2 se presentan el contexto en el cual se encuentra la región de América
Latina, se hace énfasis en esta región ya que los indicadores se repiten en la mayoría de
En el capítulo 3 se hace estudio de las diferentes tecnologías, evaluando sus
características, disponibilidad de información, recursos disponibles. Se da a conocer la
elección de tecnologías y herramientas utilizadas en la creación de SAVI, se definen las
bases en la cuales va a ser desarrollada la aplicación.
En el capítulo 4 se hace un análisis general de las partes e interacción entre ellas de SAVI.
Se presentan diagramas UML (Unified Modeling Language) del diseño del sistema. Se
detalla el diseño de cada uno de los componentes del sistema para describir la interacción
que existe entre diferentes objetos del sistema.
En el capítulo 5 se presenta el desarrollo de SAVI, una aplicación que apoya y da medios
de comunicación seguros antes eventos cotidianos. Se analizará la herramienta desde un
nivel conceptual. Se estudia cada una de las secciones que contiene, así como la
interacción entre cada una de las partes. Se da importancia a la forma en la que la
tecnología sirve como herramienta a favor de la seguridad, se hace un relevamiento sobre
las medidas tecnológicas y se realiza una comparación entre las soluciones tecnológicas
actuales y SAVI.
En el capítulo 6 se desarrolla el caso de estudio. Evaluando los puntos en los cuales la
aplicación es vital. Se dará importancia a los tiempos de respuesta, usabilidad. Se presenta
las evaluaciones experimentales que se le realizaron SAVI, dejando claro a través de
análisis y comparaciones los beneficios de su utilización.
El capítulo 7 presenta las conclusiones obtenidas a partir de la construcción de SAVI y
de su utilización en el caso de estudio. También se presentan cuáles serán los trabajos
Capítulo 2: Contexto Actual
En este capítulo se analiza el contexto y la situación de Argentina, en base a estudios
realizados por entes gubernamentales y no gubernamentales, se estudia los tipos de
delitos y la situación social, como la económica. Se usa el PBI como indicador del crimen,
con la premisa de que los países que tengan más problemas delictivos más van a invertir
en materia de seguridad. Por último, se hace un análisis de la forma en la que la tecnología
sirve de medio para contribuir a la seguridad y se realiza un análisis de soluciones
tecnológicas actuales.
Indicadores de seguridad en Argentina
Datos de encuestas realizadas por ENV [2], revelaron que en 2016 el 27,5% de las
familias sufrió algún delito ya sea contra el hogar o contra alguno de sus miembros. En
otras palabras, en el año 2016, tres de cada diez hogares argentinos padecieron al menos
un delito. Se dio importancia a cinco delitos contra el hogar (robo o hurto de vivienda,
auto, moto y/o secuestro) y nueve contra las personas (robo con violencia, hurto, estafa,
fraude, secuestro virtual, agresión física, amenazas, corrupción u ofensa sexual.
Según el INDEC [3], en la mayoría de los hechos (67,7%) no se hizo la denuncia. Las
encuestas nacionales de victimización (ENV) [2] complementan los registros
administrativos de la policía, al no estar afectados por el subreporte (no denuncia) de los
incidentes a la policía. Contar con datos de victimización a lo largo del tiempo es central
para analizar la evolución de la incidencia y prevalencia del crimen.
Una alternativa para analizar la evolución de la tasa de victimización es utilizar la
encuesta de victimización que realiza el Laboratorio de Investigaciones sobre Crimen,
Instituciones y Políticas [27] de la Universidad Torcuato Di Tella desde inicios de 2008.
Esta encuesta se ha convertido en los últimos años en un instrumento muy importante
para el diagnóstico en materia de inseguridad en vista de la falta de disponibilidad de
datos oficiales. A diferencia de la ENV 2017 [2], esta encuesta es telefónica y con una
muestra mucho menor. Sin embargo, tiene la ventaja de proveer una serie confiable y
larga en el tiempo de la victimización en el país, y arroja resultados muy similares para
2017. Según esta encuesta del LICIP [27] (Universidad Torcuato Di Tella), se observa en
década pasada, desde fines de 2015 hay una tendencia decreciente a nivel nacional
(medido por el porcentaje de hogares que declararon haber sufrido por lo menos un delito
en los últimos doce meses). En lo que va del año este índice se encuentra en torno al 27%.
Para 2016 el promedio fue 28,2%, muy similar al dato de victimización que arroja la ENV
2017, a pesar de las grandes diferencias metodológicas.
Existe heterogeneidad en la distribución geográfica del crimen entre las provincias. El
siguiente mapa figura 2.2 muestra esta distribución robos en 2016. Los colores claros
representan las tasas por 100.000 habitantes más bajas, mientras que los colores oscuros
identifican a las provincias con tasas más elevadas. Los robos están más concentrados en
ciertas provincias del centro del país (Córdoba y Santa Fe y CABA), del Noroeste
(Catamarca, Jujuy, Salta y Tucumán) y del sur (en especial, Mendoza y Neuquén.
Figura 2.3 Mapa de robos por provincia. Tasa por 100.000 habitantes [27].
Contexto Social
Desde el año 2003, Argentina ha venido transitando un sendero de crecimiento, desarrollo
económico e inclusión social sin precedentes. Desde ese año, se inició un período de
recuperación del Estado nacional en el rol de direccionamiento de las políticas públicas
económicas y sociales y a través de diferentes medidas que fueron reconfigurando el
Estado y dando muestras de una gestión integral destinada a recomponer el tejido social.
sociales, especialmente a partir de una visión crítica, centrada en la experiencia obtenida,
respecto de los programas neoliberales sostenidos por algunos organismos multilaterales
de crédito. La seguridad social fue una de las áreas donde se comenzaron a concretar
políticas que daban cuenta de las nuevas necesidades surgidas tras la crisis económica y
el consecuente deterioro del Estado de bienestar. Así, en 2005, se anunció el Plan de
Inclusión Previsional, poniendo de manifiesto la capacidad del Estado nacional de incluir
nuevas realidades constituidas en el marco de las reconfiguraciones del mercado de
trabajo a partir de la desregularización y flexibilización que se inició desde mediados de
los años ´70 en nuestro país [4].
Como es evidente, la calidad de vida y la esperanza de vida aumentaron. Sin embargo,
los índices de criminalidad se dispararon paralelamente con el avance de calidad social.
Como se verá más adelante, estos indicadores se repiten en toda la región de América
Latina.
Contexto Económico
Según estudios realizados en ALC [4] el costo del crimen promedio por país en 2014 fue
del 3% del producto interno bruto (PBI), con un límite inferior de 2,41% y un límite
superior de 3,55% del PBI, y una amplia gama de variaciones que ilustran la
heterogeneidad en términos de crimen que tiene la región. En algunos países, los costos
de la delincuencia son el doble del promedio regional (especialmente en Centroamérica)
mientras que en otros países implican menos de la mitad.
El porcentaje del PBI que un país invierte en seguridad tiene una correlación directa con
la situación actual de dicho país en temas delictivos. Es probable que un país que tiene
graves problemas de seguridad destine un porcentaje mayor de su PBI en el combate de
esta.
Argentina ocupa el puesto 21 de escala mundial en PBI [10] con 541.748 (Millones de
Dólares USD). Como se verá más adelante Argentina invierte un 4% de su PBI en materia
de seguridad, esto equivale a 21.669 (Millones de Dólares USD).
En la figura 2.3 se presenta una comparación de los costos de la delincuencia en ALC
con los de un conjunto de países desarrollados: Australia, Canadá, Francia, Alemania,
Reino Unido y Estados Unidos. Los costos medios en los países de ALC son superiores
Figura 2.4 Costos del crimen, comparación internacional, 2014.
Los costos privados y de victimización (es la tendencia de una persona a considerarse
víctima o a hacerse pasar por tal) son considerablemente más bajos en los países
desarrollados. Solo en los costos sociales de la prisión en algunos países desarrollados se
aproximan a las cifras latinoamericanas, básicamente debido a las tasas de
encarcelamiento relativamente altas de Australia y Reino Unido. Estados Unidos es la
clara excepción, con costos de encarcelamiento en torno al 0,45% del PBI. En general,
esta comparación ilustra nuevamente los costos excepcionalmente elevados del crimen
en ALC. En la Figura 2.4 presenta los resultados para cada país expresados como
proporción del PBI. Allí puede verse que la composición de los costos relacionados.
Situación regional
Según datos oficiales [24], Tandil ha sufrido un aumento exponencial en la cantidad de
habitantes, los datos del último censo oficial se muestran en la figura 2.5 INDEC [3], así
también como en la actividad comercial, seguida paralelamente con los índices delictivos.
Según relevamientos realizados por “El diario de Tandil” en 2015 la tasa de delitos se
disparó y notas actuales aseguran que la situación de inseguridad se siente de primera
mano. En la figura 2.6 se presenta un “Mapa del delito”.
Figura 2.6 Cantidad de habitantes por miles, Tandil según datos oficiales INDEC [3].
Ley N.º 12.154 de Seguridad Pública
Tal cual lo indica la Ley N.º 12.154 de Seguridad Pública [21], desde mayo del corriente
año, Tandil cuenta con un Foro Municipal de Seguridad. La ley 12.154 en su artículo 20
determina que los Foros Municipales de Seguridad estarán integrados por el titular del
Departamento Ejecutivo del Municipio o un representante designado por éste, miembros
del Departamento Deliberativo del Municipio conforme a criterios de proporcionalidad
en la representación partidaria, representantes de organizaciones o entidades
comunitarias y sectoriales de carácter municipal, y un representante de instituciones
religiosas.
La presente Ley establece las bases jurídicas e institucionales fundamentales del sistema
provincial de seguridad pública en lo referente a su composición, misiones, funciones,
organización, dirección, y funcionamiento; así como las bases jurídicas e institucionales
para la formulación, gestión y control de las políticas y directivas de seguridad pública
en el ámbito provincial. Dicha Ley en “TÍTULO III PARTICIPACIÓN COMUNITARIA” [21] y artículos del 10 al 18, se hace especial referencia a la
participación de la comunidad en pos de preservar la seguridad. Así por ejemplos se cita:
ARTÍCULO 12.- La participación comunitaria se efectiviza en la actuación en los Foros
Vecinales de Seguridad, los Foros Municipales de Seguridad, los Foros departamentales
de Seguridad, y por los Defensores Municipales de la Seguridad.
ARTÍCULO 16.- Los Foros Vecinales de Seguridad tendrán como funciones:
a) Entender e intervenir en las cuestiones atinentes a la seguridad pública vecinal.
b) Evaluar el funcionamiento y las actividades de las Policías de la Provincia y de
los prestadores del servicio de seguridad privada, en su ámbito de actuación.
c) Formular sugerencias y propuestas y solicitar informes a los titulares de las
Comisarías.
d) Intervenir en los planes de prevención de actividades y hechos delictivos o
vulneratorios de la seguridad pública y en los planes de mantenimiento de la
situación de seguridad pública desarrollados por las Comisarías correspondientes
a su ámbito de actuación.
e) Derivar inquietudes y demandas comunitarias y formular propuestas al Foro
f) Informar y asesorar a los vecinos acerca de toda cuestión o asunto atinente a la
seguridad pública en el ámbito vecinal.
g) Invitar a autoridades o funcionarios públicos provinciales y/o municipales, con
actuación en su ámbito territorial, para tratar cuestiones y asuntos atinentes a la
seguridad pública del ámbito vecinal.
Con esta ley se busca participación por parte de la comunidad. Y declara que cada foro
vecinal de seguridad establecerá su organización, sus normas de funcionamiento y dictará
su propio reglamento. Así también como la utilización de herramienta especialmente
Seguridad y tecnologías.
Tandil sigue el ejemplo de diferentes municipios que fueron los pioneros en instalar
cámaras de seguridad como elementos de seguridad en Argentina (La municipalidad de
Tigre fue quizás la más emblemática), en enero del corriente año confirmó el inicio del
proceso de licitación pública para la instalación de 200 nuevas cámaras de
videovigilancia en distintos sectores de la ciudad, que se sumarán a las 100 ya en
funcionamiento, en la figura 2.7 se muestra la distribución de las actuales. El objetivo es
ampliar el sistema de monitoreo permanente para la prevención y la protección
ciudadana. Desde la Secretaría de Protección Ciudadana anunciaron que se pondrá en
marcha la licitación pública destinada a la instalación de 165 nuevos puntos de captura
de imagen en diversos sectores de la planta urbana, con un mínimo de 200 cámaras entre
las del tipo domos y fijas. La iniciativa contempla también el tendido de nuevas redes de
fibra óptica para la interconexión y la ampliación del actual Centro de Monitoreo
municipal. La millonaria inversión requerida será financiada con los fondos afectados de
la Tasa Complementaria de Protección Ciudadana. La millonaria inversión no solo llega
a la instalación de las cámaras, sino que también a la capacitación de los recursos
humanos que cumplirán los roles de observadores.
Analizando la información disponible a los ciudadanos, en su página oficial [25] el
Municipio de Tandil da información de licitaciones públicas y privadas de seguimientos,
se tiene por ejemplo se muestran los datos de LICITACIÓN PRIVADA 29, con Apertura:
19/06/2018 y su presupuesto oficial es de $ 170600, datos observados en la figura 2.8
Figura 2.9 Licitación privada 29 – 2018 Municipalidad de Tandil [25].
Se detalla la compra de 5 cámaras con un importe unitario de $ 114.042 como la que se
ve en la figura 2.9, además de 50 cámaras con un valor unitario de $ 10831.5 como la que
se observa en la figura 2.10.
Centro de Monitoreo Tandil (CMT)
Paralelamente a la instalación de cámaras, se creó el centro de monitoreo Tandil (CMT),
figura 2.11. Según se informa se controlará durante 24 horas los 365 días del año, la red
de más de 100 cámaras, instaladas en diferentes lugares de la ciudad, los botones
antipánico para víctimas de violencia de género, el AVL para el control de los patrulleros
policiales, y los nuevos móviles municipales para Inspección General. En el centro
trabajarán 27 personas para cubrir los turnos durante todos los días del año. Son agentes
municipales que han recibido capacitación para poder desempeñarse en los puestos de
trabajo. Además, hay un policía las 24 horas que permite tener comunicación directa,
para de esta manera, enviar móviles o efectivos a un lugar en el que por las cámaras se
detecta un hecho sospechoso o que llame la atención.
Figura 2.12 Centro de Monitoreo Tandil (CMT)
Seguridad Privada
Si analizamos la seguridad privada, existen 2 tipos de empresas prestadoras de seguridad
(en cuanto a sistemas de alarma para el hogar), las que cobran por instalar la alarma y
luego una cuota mensual por monitoreo y las que solo cobran por instalación, estas
últimas carecen de supervisión.
La mayoría de las alarmas ofrece sistemas que se mantienen en permanente contacto su
propiedad, comercio o industria con la central receptora de alarmas, cuyo diseño se
orienta a facilitar la atención telefónica de urgencia ante un robo, asalto, emergencias
para dar aviso con la premura que el evento merece a las autoridades que correspondan.
Estas son las que cobran la instalación y además un costo fijo por mes, por el servicio de
monitoreo, en la Figura 2.12 se observa un mapa de las empresas prestadoras de este tipo
de servicio.
Por otro lado, tenemos kits de alarmas que son autoinstalables, estos varían en
complejidad y costo, pero sus principales objetivos son alertar a los habitantes del hogar
y al mismo tiempo de desalentar a los extraños que desean ingresar al hogar. Si
despreciamos los costos de instalación, tenemos el ejemplo de una alarma para el exterior
de un hogar figura 2.13.
Capítulo 3: Elección de tecnologías
En este capítulo se realiza un repaso por las tecnologías elegidas para realizar la
implementación de SAVI. El objetivo de este capítulo es mostrar el resultado final de las
elecciones de las tecnologías en las cuales va a ser desarrollada la aplicación.
Marco tecnológico
Al seleccionar una tecnología uno de los criterios más importantes es cómo se integrará
en los procesos y las aplicaciones existentes. A fin de poderlo cuantificar y medir, es
necesario comprender con todo detalle el entorno y las aplicaciones potencialmente
afectadas. Cualquier tecnología deberá funcionar en un entorno existente. Al seleccionar
una tecnología una consideración clave debe ser la capacidad de dicha tecnología de
adaptarse de forma rentable al entorno técnico y a los procesos existentes.
Android
Android constituye una pila de software pensada especialmente para dispositivos móviles
y que incluye tanto un sistema operativo, como middleware (es un software que asiste a
una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de
programas, redes, hardware y/o sistemas operativos) y diversas aplicaciones de usuario.
Representa la primera incursión seria de Google en el mercado móvil y nace con la
pretensión de extender su filosofía a dicho sector. Todas las aplicaciones para Android se
programan en lenguaje Java y son ejecutadas en una máquina virtual especialmente
diseñada para esta plataforma, que ha sido bautizada con el nombre de Dalvik. Se
proporciona a los desarrolladores de forma gratuita un SDK y la opción de un plug-in
para el entorno de desarrollo Eclipse o Android Studio varios que incluyen todas las API
necesarias para la creación de aplicaciones, así como un emulador integrado para su
ejecución. Existe además disponible una amplia documentación de respaldo para
cualquier SDK [15].
Android busca reunir en una misma plataforma todos los elementos necesarios que
permitan al desarrollador controlar y aprovechar al máximo cualquier funcionalidad
ofrecida por un dispositivo móvil (llamadas, mensajes de texto, cámara, agenda de
contactos, conexión Wi-Fi, Bluetooth, aplicaciones ofimáticas, videojuegos, etc.), así
como poder crear aplicaciones que sean verdaderamente portables, reutilizables y de
de aplicaciones para cualquier dispositivo móvil y, por ende, acabar con la perjudicial
fragmentación existente hoy día. Además de todo ello, otro aspecto básico para entender
la aparición de Android es que pretende facilitar la integración de estos dispositivos con
las posibilidades cada día mayores ofrecidas por la Web. Por ejemplo, una aplicación
desarrollada en Android podría ser aquella que indicase al usuario, a través de Google
Maps, la localización de sus diferentes contactos de la agenda y que avisasen cuando
éstos se encuentren a una distancia cercana o en una ubicación determinada. Mejorar el
desarrollo y enriquecer la experiencia del usuario se convierte, por tanto, en la gran
filosofía de Android y en su principal objetivo.
La justificación de la elección de Android como framework, radica directamente en las
características ofrecidas, listadas a continuación:
● Busca el desarrollo rápido de aplicaciones, que sean reutilizables y
verdaderamente portables entre diferentes dispositivos.
● Los componentes básicos de las aplicaciones se pueden sustituir fácilmente por
otros.
● Cuenta con su propia máquina virtual, Dalvik, que interpreta y ejecuta código
escrito en Java.
● Permite la representación de gráficos 2D y 3D.
● Posibilita el uso de bases de datos.
● Soporta un elevado número de formatos multimedia.
● Servicio de localización GSM.
● Controla los diferentes elementos hardware: Bluetooth, Wi-Fi, cámara
● fotográfica o de vídeo, GPS, acelerómetro, infrarrojos, etc., siempre y cuando el
dispositivo móvil lo contemple.
● Cuenta con un entorno de desarrollo muy cuidado mediante un SDK disponible
de forma gratuita.
● Ofrece un plug-in para uno de los entornos de desarrollo más populares, Eclipse,
En el siguiente gráfico se muestran los porcentajes uso de las diferentes versiones de
Android, figura 3.1.
Figura 3.15 API Distribución de versiones [16]
Activity
Es el componente más habitual de las aplicaciones para Android. Un componente Activity
refleja una determinada actividad llevada a cabo por una aplicación, y que lleva asociada
típicamente una ventana o interfaz de usuario; es importante señalar que no contempla
únicamente el aspecto gráfico, sino que éste forma parte del componente Activity a través
de vistas representadas por clases cómo View y sus derivadas. Este componente se
implementa mediante la clase de mismo nombre Activity [15].
La mayoría de las aplicaciones permiten la ejecución de varias acciones a través de la
existencia de una o más pantallas. Por ejemplo, piénsese en una aplicación de mensajes
de texto. En ella, la lista de contactos se muestra en una ventana. Mediante el despliegue
de una segunda ventana, el usuario puede escribir el mensaje al contacto elegido, y en
otra tercera puede repasar su historial de mensajes enviados o recibidos. Cada una de
estas ventanas deberías estar representada a través de un componente Activity, de forma
que navegar de una ventana a otra implica lanzar una actividad o dormir otra. Android
Muy vinculado a este componente se encuentran los Intents. Un Intent consiste
básicamente en la voluntad de realizar alguna acción, generalmente asociada a unos
datos. Lanzando un Intent, una aplicación puede delegar el trabajo en otra, de forma que
el sistema se encarga de buscar qué aplicación entre las instaladas es la que puede llevar
a cabo la acción solicitada. Por ejemplo, abrir una URL en algún navegador web, o
escribir un correo electrónico desde algún cliente de correo.
Broadcast Intent Receiver
Un componente Broadcast Intent Receiver se utiliza para lanzar alguna ejecución de
adentro de la aplicación actual cuando un determinado evento se produzca (generalmente,
abrir un componente Activity). Por ejemplo, una llamada entrante o un SMS recibido. No
tiene interfaz de usuario asociada, pero puede utilizar el API Notification Manager,
mencionada anteriormente, para avisar al usuario del evento producido a través de la barra
de estado del dispositivo móvil. Este componente se implementa a través de una clase de
nombre Broadcast Receiver.
Para qué Broadcast Intent Receiver funcione, no es necesario que la aplicación en
cuestión sea la aplicación activa en el momento de producirse el evento. El sistema
lanzará la aplicación si es necesario cuando el evento monitorizado tenga lugar.
Service
Un componente Service representa una aplicación ejecutada sin interfaz de usuario, y que
generalmente tiene lugar en segundo plano mientras otras aplicaciones (éstas con
interfaz) son las que están activas en la pantalla del dispositivo. Un ejemplo típico de este
componente es un reproductor de música. La interfaz del reproductor muestra al usuario
las distintas canciones disponibles, así como los típicos botones de reproducción, pausa,
volumen, etc. En el momento en el que el usuario reproduce una canción, ésta se escucha
mientras se siguen visionando todas las acciones anteriores, e incluso puede ejecutar una
aplicación distinta sin que la música deje de sonar. La interfaz de usuario del reproductor
sería un componente Activity, pero la música en reproducción sería un componente
Service, porque se ejecuta en background. Este elemento está implementado por la clase
de mismo nombre Service.
Content Provider
Con el componente Content Provider, cualquier aplicación en Android puede almacenar
considere. Además, estos datos pueden ser compartidos entre distintas aplicaciones. Una
clase que implemente el componente Content Provider contendrá una serie de métodos
que permite almacenar, recuperar, actualizar y compartir los datos de una aplicación.
Existe una colección de clases para distintos tipos de gestión de datos en el paquete
“android.provider”. Además, cualquier formato adicional que se quiera implementar
deberá pertenecer a este paquete y seguir sus estándares de funcionamiento.
Ciclo de vida Android
En Android, cada aplicación se ejecuta en su propio proceso. Esto aporta beneficios en
cuestiones básicas como seguridad, gestión de memoria, o la ocupación de la CPU del
dispositivo móvil. Android se ocupa de lanzar y parar todos estos procesos, gestionar su
ejecución y decidir qué hacer en función de los recursos disponibles y de las órdenes
dadas por el usuario.
El usuario desconoce este comportamiento de Android. Simplemente es consciente de
que mediante un simple clic pasa de una a otra aplicación y puede volver a cualquiera de
ellas en el momento que lo desee. No debe preocuparse de cuál es la aplicación que
realmente está activa, cuánta memoria está consumiendo, ni si existen o no recursos
suficientes para abrir una aplicación adicional. Todo eso son tareas propias del sistema
operativo.
Android lanza tantos procesos como permitan los recursos del dispositivo. Cada proceso,
correspondiente a una aplicación, estará formado por una o varias actividades
independientes (componentes Activity) de esa aplicación. Cuando el usuario navega de
una actividad a otra, o abre una nueva aplicación, el sistema duerme dicho proceso y
realiza una copia de su estado para poder recuperarlo más tarde. El proceso y la actividad
siguen existiendo en el sistema, pero están dormidos y su estado ha sido guardado. Es
entonces cuando crea, o despierta si ya existe, el proceso para la aplicación que debe ser
lanzada, asumiendo que existan recursos para ello. Cada uno de los componentes básicos
de Android tiene un ciclo de vida bien definido; esto implica que el desarrollador puede
controlar en cada momento en qué estado se encuentra dicho componente, pudiendo así
programar las acciones que mejor convengan. El componente Activity, probablemente el
Figura 3.2 Ciclo de vida Activity [17]
Firebase
Firebase es una plataforma de back-end como servicio, que dispone de una serie de
herramientas para el desarrollo de aplicaciones: el almacenamiento y sincronización de
datos en la nube, medición del comportamiento del usuario y soluciones para monetizar
productos. Está diseñada para integrar aplicaciones web y móviles. Permite trabajar con
BD documentales con formato JSON. No es necesario configuraciones a nivel servidor
para procesar solicitudes [30].
Firebase es una plataforma desarrollada por Google que facilita el desarrollo de apps,
proporcionando un servidor backend para las aplicaciones. Además, el mismo backend
puede ser utilizado de forma común en diversas plataformas: Android, IOS y web.
también de escalabilidad a medida que la base de usuarios de la aplicación crece, ya que
los servidores son proporcionados por Google. Entre sus funcionalidades se encuentra un
servicio de autenticación, base de datos en tiempo real, almacenamiento de archivos,
solución de errores, funciones backend, testeo, y medida de estadísticas recogidas de los
usuarios. Las características de esta API son [28]:
● Base de datos en tiempo real: Firebase proporciona una base de datos no SQL que
almacena datos y los sincroniza en tiempo real. Esto ha sido utilizado para
almacenar todos los datos de las apuestas realizadas, los resultados, datos de los
usuarios como los puntos de los que disponen, y en general, cualquier dato de la
aplicación que necesite ser guardado.
● Autenticación: Firebase proporciona un método de registro e inicio de sesión que
no solo incluye autenticación a través de correo, sino que también permite la
autenticación a través de proveedores externos como Facebook, Twitter, Github
y Google.
● Almacenamiento de archivos: Esta característica se ha utilizado para almacenar
ciertas imágenes que la aplicación utiliza, así como las fotos de perfil del usuario.
Aunque algunas de las imágenes se podrían haber guardado de forma local, se ha
decidido hacerlo de esta forma para garantizar que se puedan añadir nuevos
juegos y categorías a la aplicación sin necesidad de que los usuarios la actualicen,
simplemente utilizando la base de datos y el almacenamiento.
● Funciones backend: Firebase permite ejecutar código Javascript en el servidor.
Por ejemplo, notificaciones de tipo push que han de llegar a una serie de
dispositivos cuando se produce un cambio en la base de datos.
Realtime Database
Firebase Realtime Database es un servicio de la plataforma que permite almacenar y
sincronizar datos con una base de datos NoSQL alojada en la nube. Los datos se
sincronizan con todos los clientes en tiempo real y seguirá estando disponible cuando la
app pierda la conexión. La Firebase Realtime Database es una base de datos alojada en
la nube. Los datos se almacenan en formato JSON y se sincronizan en tiempo real con
cada cliente conectado. Cuando se crean apps multiplataforma con teléfonos iOS,
Android y los SDK de JavaScript, todos los clientes comparten una instancia de Realtime
● Tiempo real: en lugar de solicitudes típicas de HTTP, la Firebase Realtime
Database usa sincronización de datos —cada vez que los datos cambian, cualquier
dispositivo conectado recibe esa actualización dentro de milisegundos.
Proporciona experiencias colaborativas e inmersivas sin pensar en el código de
red.
● Trabajo sin conexión: Las apps de Firebase se mantienen receptivas incluso
cuando están sin conexión porque el SDK Firebase Realtime Database hace que
tus datos persistan en el disco. Una vez que la conectividad se restablece el
dispositivo del cliente recibe cualquier modificación que se haya perdido,
sincronizándolo con el estado actual del servidor.
● Accesible desde los dispositivos del cliente: Se puede acceder de forma directa a
Firebase Realtime Database desde un dispositivo móvil o desde el navegador web,
no se necesita un servidor de apps. La seguridad y la validación de datos están
disponibles a través de las Security Rules de Firebase Realtime Database, reglas
basadas en expresiones que se ejecutan cuando se leen o se escriben los datos.
La Firebase Realtime Database permite crear apps potentes y colaborativas permitiendo
un acceso seguro a la base de datos de forma directa desde el código del cliente. Los datos
persisten de manera local, e incluso cuando no hay conexión, los eventos en tiempo real
se siguen activando, brindándole al usuario final una experiencia receptiva. Cuando el
dispositivo recupera la conexión, la Realtime Database sincroniza las modificaciones
locales de datos con las actualizaciones remotas que ocurrieron mientras el cliente no
tenía conexión, fusionando cualquier conflicto de forma automática.
La Realtime Database proporciona un lenguaje de reglas flexibles basadas en expresiones
llamado Security Rules de Firebase Realtime Database , para definir el modo en que tus
datos se deben estructurar y el momento en que se pueden someter a lectura y escritura.
Cuando se integra con Firebase Authentication, los desarrolladores pueden definir quién
accede a qué datos y cómo pueden acceder al mismo.
La Realtime Database es una base de datos NoSQL y como tal tiene diferentes
optimizaciones y funcionalidad en comparación con una base de datos relacional. La API
Realtime Database está diseñada para permitir operaciones que se pueden ejecutar de
servir a millones de usuarios sin comprometerse con la capacidad de respuesta. Debido a
esto, es importante pensar en el modo en que los usuarios necesitan acceder a tus datos y
luego estructurarlos de forma adecuada.
NoSQL
Se refiere a una amplia clase de sistemas de gestión de datos (mecanismos para el
almacenamiento y recuperación de datos) que difieren, en aspectos importantes, del
modelo clásico de relaciones entre entidades (o tablas) existente en los sistemas de
gestión bases de datos relacionales, siendo el más destacado el que no usan SQL como
lenguaje principal de consulta.
Aunque son conocidas desde la década de los 60 del pasado siglo, su auge actual viene
determinado por el uso que, de estos sistemas han hecho las principales compañías de
internet como Amazon, Google, Twitter y Facebook. Estas compañías tenían que
enfrentarse a nuevos desafíos en el tratamiento de los datos motivados por el enorme
crecimiento de la Web donde se requería dar respuesta a la necesidad de proporcionar
información procesada a partir de grandes volúmenes de datos con unas estructuras
horizontales, más o menos, similares y con aplicaciones web que debían dar respuesta a
las peticiones de un número elevado e indeterminado de usuarios en el menor tiempo
posible. Estas compañías se dieron cuenta de que el rendimiento y sus necesidades de
tiempo real eran más importantes que la consistencia de los datos, aspecto este último al
que las bases de datos relacionales tradicionales dedicaban una gran cantidad de tiempo
de proceso.
Las características comunes entre todas las implementaciones de bases de datos NoSQL
suelen ser las siguientes:
● Consistencia Eventual: A diferencia de las bases de datos relacionales
tradicionales, en la mayoría de los sistemas NoSQL, no se implementan
mecanismos rígidos de consistencia que garanticen que cualquier cambio llevado
a cabo en el sistema distribuido sea visto, al mismo tiempo, por todos los nodos y
asegurando, también, la no violación de posibles restricciones de integridad de
los datos u otras reglas definidas. En su lugar y para obtener un mayor
que, una consulta podría no devolver los últimos datos disponibles o proporcionar
datos inexactos, problema conocido como lecturas sucias u obsoletas. Asimismo,
en algunos sistemas NoSQL se pueden presentar pérdidas de datos en escritura.
Esto se conoce también como BASE (Basically Available Soft-state Eventual
Consistency), en contraposición a ACID (Atomicity, Consistency, Isolation,
Durability), su analogía en las bases de datos relacionales.
● Flexibilidad en el esquema: En la mayoría de base de datos NoSQL, los esquemas
de datos son dinámicos; es decir, a diferencia de las bases de datos relacionales
en las que, la escritura de los datos debe adaptarse a unas estructuras(o tablas,
compuestas a su vez por filas y columnas) y tipos de datos pre-definidos, en los
sistemas NoSQL, cada registro (o documento, como se les suele llamar en estos
casos) puede contener una información con diferente forma cada vez, pudiendo
así almacenar sólo los atributos que interesan en cada uno de ellos, facilitando el
polimorfismo de datos bajo una misma colección de información. También se
pueden almacenar estructuras complejas de datos en un sólo documento, como
por ejemplo almacenar la información sobre una publicación de un blog (título,
cuerpo de texto, autor, etc) junto a los comentarios y etiquetas vertidos sobre el
mismo, todo en un único registro.
● Escalabilidad horizontal: Por escalabilidad horizontal se entiende la posibilidad
de incrementar el rendimiento del sistema añadiendo, simplemente, más nodos
(servidores) e indicando al sistema cuáles son los nodos disponibles.
● Estructura distribuida: Generalmente los datos se distribuyen, entre los diferentes
nodos que componen el sistema. Hay dos estilos de distribución de datos:
○ Particionado (ó Sharding): El particionado distribuye los datos entre
múltiples servidores de forma que, cada servidor, actúe como única fuente
de un subconjunto de datos. Normalmente, a la hora de realizar esta
distribución, se utilizan mecanismos de tablas de hash distribuidas (DHT).
○ Réplica: La réplica copia los datos entre múltiples servidores, de forma
que cada bit de datos pueda ser encontrado en múltiples lugares. Esta
réplica puede realizarse de dos maneras:
■ Réplica maestro-esclavo en la que un servidor gestiona la escritura
de la copia autorizada mientras que los esclavos se sincronizan con
■ Réplica peer-to-peer en la que se permiten escrituras a cualquier
nodo y ellos se coordinan entre sí para sincronizar sus copias de
los datos
● Tolerancia a fallos y Redundancia: Pese a lo que cualquiera pueda pensar cuando
se habla de NoSQL, no todas las tecnologías existentes bajo este paraguas usan el
mismo modelo de datos ya que, al ser sistemas altamente especializados, la
idoneidad particular de una base de datos NoSQL dependerá del problema a
resolver. Así a todo, podemos agrupar los diferentes modelos de datos usados en
sistemas NoSQL en cuatro grandes categorías:
○ Base de datos de Documentos: Este tipo de base de datos almacena la
información como un documento, usando para habitualmente para ello
una estructura simple como JSON, BSON o XML y donde se utiliza una
clave única para cada registro. Este tipo de implementación permite,
además de realizar búsquedas por clave–valor, realizar consultas más
avanzadas sobre el contenido del documento. Son las bases de datos
NoSQL más versátiles.
○ Almacenamiento Clave-Valor: Son el modelo de base de datos NoSQL
más popular, además de ser la más sencilla en cuanto a funcionalidad. En
este tipo de sistema, cada elemento está identificado por una clave única,
lo que permite la recuperación de la información de forma muy rápida,
información que suele almacenarse como un objeto binario. Se
caracterizan por ser muy eficientes tanto para las lecturas como para las
escrituras.
○ Bases de datos de grafos: Usadas para aquellos datos cuyas relaciones se
pueden representar adecuadamente mediante un grafo. Los datos se
almacenan en estructuras grafo con nodos (entidades), propiedades
(información entre entidades) y líneas (conexiones entre las entidades).
○ Base de datos Columnar (o Columna ancha): En vez de “tablas”, en las
bases de datos de columna tenemos familias de columnas que, son los
contenedores de las filas. A diferencia de los RDBMS, no necesita conocer
de antemano todas las columnas, cada fila no tiene por qué tener el mismo
número de columnas. Este tipo de bases de datos se adecuan mejor a
Mapas
Google Maps es un servidor de aplicaciones de mapas en la web que pertenece a Alphabet
Inc. Ofrece imágenes de mapas desplazables, así como fotografías por satélite del mundo
e incluso la ruta entre diferentes ubicaciones o imágenes a pie de calle con Google Street
View.
Los usuarios pueden ingresar una dirección, una intersección o un área en general para
buscar en el mapa. Las coordenadas de Google Maps están en el sistema WGS842 y se
mostrará la latitud y la longitud, positiva para Norte y Este, negativa para Sur y Oeste.
El alcance de esta herramienta incluida para SAVI es la inclusión de un iframe que
permite obtener una vista satelital y la obtención de coordenadas en base a un punto.
La latitud mide el ángulo entre cualquier punto y el ecuador. Las líneas de latitud se
llaman paralelos y son círculos paralelos al ecuador en la superficie de la Tierra. La latitud
es la distancia que existe entre un punto cualquiera y el Ecuador, medida sobre el
meridiano que pasa por dicho punto.
La longitud mide el ángulo a lo largo del ecuador desde cualquier punto de la Tierra. Se
acepta por convención que Greenwich en Londres es la longitud 0. Las líneas de longitud
son círculos máximos que pasan por los polos y se llaman meridianos.
Todos los puntos ubicados sobre el mismo meridiano tienen la misma longitud.