• No se han encontrado resultados

Sistema de Asistencia Vecinal Integral, basado en agentes inteligentes

N/A
N/A
Protected

Academic year: 2020

Share "Sistema de Asistencia Vecinal Integral, basado en agentes inteligentes"

Copied!
113
0
0

Texto completo

(1)

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

(2)
(3)

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.

(4)

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

(5)

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

(6)

Í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

(7)

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

(8)

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

(9)

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

(10)

[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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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.

(18)

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

(19)

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.

(20)

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].

(21)

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

(22)

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

(23)

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.

(24)

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.

(25)

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

(26)

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.

(27)

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.

(28)

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

(29)

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,

(30)

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

(31)

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

(32)

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

(33)

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.

(34)

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

(35)

● 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

(36)

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

(37)

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

(38)

■ 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

(39)

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.

Referencias

Documento similar

Caso 3: El usuario No existe en el registro de Agentes. Datos de la entidad solicitante y de la persona representante ... Notificación electrónica obligatoria ... Datos bancarios

La aplicación de las Buenas Prácticas de Producción de Miel en el Manejo Integral en l Manejo Integral de los Apiarios y de las Colonias de abejas aplicada por los

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

En el caso de realizar una análisis estructural dinámico lineal de un edificio en particular, se necesita disponer de la información correspondiente a las dimensiones en planta y

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

[r]

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones