UNIVERSIDAD DE LA REPUBLICA FACULTAD DE INGENIERIA UNIVERSIDAD DEL TRABAJO DEL URUGUAY

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY 2 UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA –

3 downloads 107 Views 4MB Size

Recommend Stories

Story Transcript

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Agradecimientos

A nuestras familias y amigos por acompañarnos a lo largo de este camino. A Martin Rodríguez por su predisposición a evacuar nuestras consultas, por su gran apoyo, el cual hizo posible la realización de este proyecto.

3

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

4

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Tabla de Contenido Agradecimientos Tabla de Contenido Resumen Palabras claves Introducción 1. Objetivos y resultados esperados Estado del Arte 1. Marco teórico 2. Investigación realizada 2.1. Aplicaciones y desarrollo web

3 5 7 7 8 9 10 10 14

Problema planteado 1. Arquitectura de la solución 1.1. Presentation Layer 1.2. Web Services Layer 1.3. Bussines Logic Layer 1.4. Data Acces Layer 2. Plataforma web 2.1 Tecnologías 2.2 Backend 2.2.1 Usuarios 2.2.2 Organizaciones (ONG) 2.2.3 Catástrofes 2.2.4 Reportes 2.2.5 Gestión de Riesgo 2.2.6 Plan de emergencia 2.2.7 Pedido de ayuda y personas desaparecidas 2.2.8 Notificaciones 2.2.9 Fuentes de noticias 2.3 Frontend 2.3.1 Registro y datos personales 2.3.2 Redes sociales 2.3.3 Búsquedas 2.3.4 Pedido de ayuda

40 41 41 42 42 43 43 43 45 45 45 45 45 45 46 46 46 46 47 47 47 48 48

14 2.1.1. Investigación de aplicaciones web relacionadas al tema catástrofes naturales 15 2.2. Aplicaciones y desarrollo de móviles 24 2.2.1. Desarrollo de aplicaciones móviles 26 2.2.2. Investigación de aplicaciones relacionadas a Catástrofes Naturales 30

5

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.3.5 Persona desaparecida 2.3.6 Donaciones 2.3.7 Active responsive 2.3.8 Notificaciones 3 Aspectos visuales 4 Aplicación Android Nativa 4.1 Registro 4.2 Login 4.3 Pedido de ayuda 4.4 Noticias 5 Aplicación Phonegap Hibrida 5.1 Login 5.2 Respuesta pedido de ayuda 5.3 Ejecutar plan de emergencia 5.4 Informe Desarrollo del proyecto Horas dedicadas Conclusiones Trabajos a futuro Bibliografía Glosario Anexos

48 48 49 49 49 50 50 50 51 51 51 51 51 51 52 53 54 57 58 59 61 73

6

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Resumen En el marco de la asignatura Proyecto se presentara a continuación un resumen para mayor entendimiento del mismo y a lo largo del documento se darán más detalle del mismo. Las catástrofes naturales generan situaciones de emergencia y según la Cruz Roja Española [3.2], han causado la muerte de 1,3 millones de personas en los últimos 20 años, periodo en el que han afectado a unos 4.400 millones de personas, además de causar grandes pérdidas económicas. Ante esta problemática se propone analizar la manera de realizar un Sistema de Soporte ante Catástrofes Naturales con el fin de prevenir a las poblaciones y mitigar los daños y problemáticas causadas por estos fenómenos. Proveer información abierta y actualizada para contribuir a la protección de las comunidades y responder proactivamente a los peligros y las vulnerabilidades causadas por los fenómenos naturales. El objetivo planteado es estudiar y aplicar en la práctica las tecnologías Java Enterprise Edition, Android SDK y Phonegap para el desarrollo de una plataforma web. Se busca el análisis de las tecnologías descritas con un criterio analítico, obteniendo conclusiones en cuanto a ventajas y desventajas de las mismas. En particular se plantea la construcción de un sistema que consta de un portal web el cual permita acceder a las últimas novedades, reportar gente desaparecida, ingresar pedidos de ayuda, realizar donaciones, etc. Este sitio web va a actuar como embudo y filtro de toda la información relevante existente en la web asociada al evento, la cual puede provenir de orígenes tan diversos como: YouTube, CNN, BBC, Wikipedia, entre otros. Además se desarrollará una aplicación Android nativa, brindando a los usuarios la posibilidad de pedir ayuda en caso de emergencia, y una aplicación utilizando Phonegap que permita a los rescatistas ejecutar los procedimientos tales como la Gestión de Riesgo o Plan de Emergencia en caso de emergencia. Es de especial interés evaluar qué servicios brinda el SINAE (Sistema Nacional de Emergencia) en nuestro país y estudiar la factibilidad de interoperabilidad, así como evaluar un sistema similar a nivel mundial.

Palabras claves Catástrofes naturales, Gestión de Riesgo, Plan de Emergencia, Android, Phonegap, Java EE.

7

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Introducción El planeta Tierra ha sufrido durante su historia diferentes tipos de desastres naturales, se denominan naturales porque ocurren sin que el hombre intervenga directamente, la naturaleza los genera por sí sola. El eco sistema de la Tierra cambia continuamente desde las eras de hielo hasta la actualidad, generando desde terremotos en los continentes o tsunamis (por terremotos sub-marinos), incendios, inundaciones, entre otros. En el caso de las inundaciones, son eventos que ocurren en ciertas zonas del planeta, en temporadas del año (periódicamente), pueden ser predecibles al igual que los tifones, huracanes. Los desastres naturales generan una gran demanda de capital para reemplazar lo que ha sido destruido y dañado. Con una frecuencia realmente alarmante, los desastres naturales encabezan los titulares de la prensa internacional. Cada año por lo menos un huracán azota la región del Caribe, causando millones de dólares en daños. También ocurren inundaciones anualmente, pero no hay una estimación confiable que indique los daños que éstas causan. Los terremotos y las erupciones volcánicas son impredecibles y tienen efectos desastrosos en términos de dinero y muerte de vidas humanas. Las sequías, aunque en menor medida, pueden causar más daños a la producción agrícola, pero aun así es escasa la asistencia que reciben las regiones en el caso de este tipo de riesgo extendido y de comienzo lento. Cuando estos eventos se manifiestan es imprescindible tener un sistema de manejo de los equipos de emergencias para salvar la mayor cantidad de vidas posible. Es por este motivo que en los últimos años, esta problemática ha llegado a las tecnologías de información (IT), dado que muchas empresas de diferentes partes del mundo, en conjunto con organizaciones han desarrollado diferentes tipos de aplicaciones móviles y sitios web que informan, o permiten estar bien informado al respecto. Si bien no es posible recuperar las vidas humanas, estas son muy útiles porque los riesgos pueden ser identificados rápidamente. Se dispone de medidas de mitigación y reducir la vulnerabilidad, estos son altos en comparación a los costos.

8

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

1.

Objetivos y resultados esperados

El objetivo de proyecto consiste en analizar y desarrollar un sistema que brinde soporte ante catástrofes naturales. Como parte del análisis se espera estudiar las tecnologías Java EE, Android SDK y Ponegap para el desarrollo de una plataforma web. Como caso de estudio, se pretende realizar una plataforma de soporte ante catástrofes naturales, el cual permita centralizar toda la información de importancia en caso de emergencia en un portal web, en el cual se puedan visualizar novedades de las catástrofes, ingresar pedidos de ayuda, realizar donaciones a una catástrofe, reportar personas como desaparecidas, entre otras. Se espera la realización de dos aplicaciones móviles, una aplicación nativa desarrollada en Android [2] que brinde a los usuarios la posibilidad de pedir ayuda, y otra aplicación hibrida desarrollada en Phonegap [3] a la cual tendrán acceso los usuarios cuyo rol sea el de rescatista, permitiendo a los mismo, ejecutar los planes de gestión y emergencias pertenecientes a una catástrofe. Como solución final se espera una aplicación funcionando como resultado al problema planteado.

En el capítulo 2, Estado del Arte, se presenta un marco conceptual que servirá de base teórica para comprender los capítulos posteriores. En el capítulo siguiente, Problema planteado, se detalla la solución referente a las aplicaciones de soporte ante catástrofes naturales. Luego en el capítulo 4, Desarrollo del proyecto, se detalla el proceso de desarrollo y evolución del proyecto. En el capítulo 5, Conclusiones, se analizan los resultados obtenidos y el trabajo realizado. Por último en la sección de trabajos a futuro se analiza cómo puede ser continuado el estudio.

9

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Estado del arte Esta sección expresa y formaliza en forma escrita la investigación realizada sobre las aplicaciones web, aplicaciones móviles, tecnologías aplicadas y todo lo referente al tema de catástrofes naturales en Uruguay y el mundo, incluyendo también los conceptos adquiridos por el Sistema Nacional de Emergencia, mediante la web y la entrevista personal realizada con su director Pablo Brugnoni [A]. Tiene como fin presentar un marco conceptual que servirá de base teórica para el seguimiento y comprensión del proyecto en cuestión.

1.

Marco teórico

La ocurrencia de catástrofes naturales ha aumentado considerablemente en la última década, afectando principalmente a países pobres y en desarrollo, generando pérdidas de gran importancia, tanto económicas como humanas. Para referirse al tema catástrofes naturales, existen múltiples definiciones de los aspectos relacionados con riesgo, peligro, vulnerabilidad, y otros. En este sentido, el objetivo de esta sección es definir los principales conceptos de riesgo y desastre necesarios para el entendimiento del tema "catástrofes naturales". Se entiende por amenaza la probabilidad de que un fenómeno de origen natural, socio natural y/ o antrópico se presente con cierta intensidad en un sitio específico y dentro de un período de tiempo, con potencial de producir efectos adversos sobre las personas, los bienes y el medio ambiente. Los peligros (o amenazas) naturales corresponden a manifestaciones de origen natural potencialmente peligrosas para un sistema humano. La probabilidad de ocurrencia de una amenaza se denomina peligrosidad y se expresa como la probabilidad de que ocurra un determinado proceso de un nivel de intensidad o severidad determinado, dentro de un tiempo y un área específica. Por su parte la vulnerabilidad corresponde a la manifestación de una predisposición o susceptibilidad física, política o social que tiene una comunidad de ser afectada o de sufrir efectos adversos en caso de que se presente un fenómeno o peligro. Al hacer referencia específica a la problemática de los desastres, aquellas circunstancias o condiciones sociales en que la sociedad haya sido afectada de forma importante por el impacto de eventos físicos de diverso origen, tales como terremotos, huracanes, inundaciones o explosiones, con consecuencias en términos de la interrupción de su cotidianeidad y sus niveles de operatividad normal, es aquí donde surge el concepto de riesgo particularizado, lo que se puede llamar “riesgo de desastre”. Éste, es la probabilidad de que se presente un nivel de 10

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

consecuencias económicas, sociales o ambientales en un sitio particular y durante un tiempo definido. Se obtiene de relacionar la amenaza con las vulnerabilidades de los elementos expuestos. En términos generales, la gestión de riesgo se define como un proceso complejo cuyo fin es la reducción o la previsión y control permanente del riesgo de desastre en una sociedad, en consonancia con el logro de pautas de desarrollo humano, económico, ambiental y territorial sostenibles. Se trata de un proceso social complejo, que involucra a múltiples actores. Su objetivo hace foco en controlar los factores de riesgo para evitar que se transformen en desastres y debe estar ligado a los procesos tendientes al desarrollo humano, económico, ambiental y territorial sustentable. Conceptos básicos de la gestión integral del riesgo Prevención, medidas y acciones, de carácter técnico y legal, dispuestas con anticipación para evitar o impedir que se presente un fenómeno peligroso, o para evitar o reducir su incidencia sobre la población, los bienes, los servicios y el ambiente. Preparación, son las actividades de carácter organizativo orientadas a asegurar la disponibilidad de los recursos y la efectividad de los procedimientos necesarios para enfrentar una situación de desastre. Atención de desastres es el conjunto de acciones preventivas y de respuesta dirigidas a la adecuada protección de la población, de los bienes y del medio ambiente ante la ocurrencia de un evento determinado. Recuperación es el conjunto de acciones posteriores al evento catastrófico, que buscan el restablecimiento de condiciones adecuadas y sostenibles de vida mediante la rehabilitación, reparación o reconstrucción del área afectada, de los bienes y de los servicios interrumpidos o deteriorados, y la reactivación del desarrollo económico y social de la comunidad. Todo lo anterior se materializa a través de un Plan de Gestión del Riesgo. Éste debe ser un conjunto coherente y ordenado de estrategias, programas y proyectos que se formula para orientar las actividades de reducción o mitigación, prevención y control de riesgos, y la recuperación en caso de desastre. El plan de gestión del riesgo debe incluir un Plan de Emergencia mediante el cual plasmar la definición de funciones, responsabilidades y procedimientos generales de respuesta y alerta temprana; un inventario de recursos; la coordinación de actividades operativas y simulación para la capacitación, todo con el fin de proteger la vida, los bienes materiales y el medio ambiente. El manejo eficiente de una crisis provocada por un fenómeno natural debe construirse sobre una planeación efectiva de la emergencia. Los aspectos principales son: un plan de contingencia basado en escenarios; preparativos y recursos destinados a atender las emergencias; albergues con los que se cuenta y planes de evacuación, papel del ejército y de las ONG [4.3]; existencia de fondos presupuestarios destinados a atender la emergencia. Otras orientaciones estratégicas pre desastre corresponden a la posibilidad de disponer de vías alternas, redundancias en los sistemas de salud, y también en las provisiones de agua para los sistemas de saneamiento, entre otras medidas preventivas. 11

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Desastre es toda situación que causa alteraciones intensas en los componentes sociales, físicos, ecológicos, económicos y culturales de una sociedad, poniendo en peligro inminente la vida humana, los bienes de significación y el medio ambiente, sobrepasando la capacidad normal de respuesta local y eficaz ante sus consecuencias. Se entiende por desastre natural a la destrucción total o parcial, transitoria o permanente, actual o futura, de un ecosistema, vidas humanas y del medio y las condiciones de subsistencia de una población, a causa de una energía que proviene de un fenómeno natural, es decir, desencadenado por las dinámicas de la naturaleza. Los tipos de desastres naturales más comunes son: movimientos de masa (avalancha, corrimiento de tierra, hundimiento de tierra), fenómenos atmosféricos (ola de calor, granizo, sequía, simún, huracán, manga de agua, tormenta, ventisca, tormenta eléctrica, tormenta de arena, tornado), desastres biológicos (enfermedad), erupciones volcánicas (erupción límnica, erupción volcánica), hambruna, fenómenos de origen espacial (impacto de origen cósmico, tormenta solar), incendios, inundación, terremoto, tsunamis y olas bravas (tsunami, mega tsunami, ola brava). Dentro de las amenazas definidas por el SINAE [4.1] en Uruguay se encuentran las inundaciones, incendios forestales, sequías, meteorológicos, derrame de hidrocarburos, accidentes, dengue, aftosa. El Sistema Nacional de Emergencias (SINAE) es un sistema público (Uruguayo) de carácter permanente cuya finalidad es la protección de las personas, los bienes de significación y el medio ambiente ante el acontecimiento eventual o real de situaciones de desastre, mediante la coordinación conjunta del Estado con el adecuado uso de los recursos públicos y privados disponibles, de modo de propiciar las condiciones para el desarrollo nacional sostenible. El funcionamiento del Sistema Nacional de Emergencias se concreta en el conjunto de acciones de los órganos estatales competentes dirigidas a la prevención de riesgos vinculados a desastres de origen natural o humano, previsibles o imprevisibles, periódicos o esporádicos; a la mitigación y atención de los fenómenos que aparecen; y a las inmediatas tareas de rehabilitación y recuperación que resulten necesarias.

12

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

La siguiente imagen es de la web de SINAE, y la misma permite seleccionar algún tipo de evento y lugar. En este caso se muestra un histórico de los lugares ubicados en el mapa de Uruguay donde se han producido inundaciones.

Imágen 1 - Sistema de Información Geográfico - SINAE

La RSOE (Hungarian National Association of Radio Distress-Signalling and Infocommunications) [4.4] es una empresa Húngara de telecomunicaciones, la cual opera el servicio EDIS (Emergency and Disaster Information Service) [4.5] dentro del marco de su propia web la cual tiene el objetivo de monitorizar y documentar todos los eventos a nivel global que pudieran causar desastres o emergencias. La web EDIS se opera conjuntamente con el OKF (General-Directorate of National Disaster Management) y RSOE, en cooperación con el Centro de Gestión de Crisis del Ministerio de Asuntos Exteriores. La misma provee información útil en relación a situación de emergencia y su prevención.

13

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.

Investigación realizada

2.1. Aplicaciones y desarrollo web Una aplicación web es cualquier aplicación que es accedida vía web por una red como Internet o una intranet. También se utiliza el término para programas informáticos que son ejecutados en el entorno del navegador (por ejemplo, un applet de Java) o codificado con algún lenguaje soportado por el navegador (como JavaScript [1.1], combinado con HTML [1.2] y otros framework de desarrollo). En el marco de la asignatura proyecto, esta sección se centraliza en aplicaciones JAVA EE [C]. Una plataforma de programación para desarrollar y ejecutar software de aplicaciones en el lenguaje de programación Java. Las aplicaciones empresariales suelen presentar algunos requerimientos como ser: interacción con diversas fuentes de datos, interacción con otros sistemas, acceso web, concurrencia, alta carga de procesamiento, usuarios con diferentes perfiles y requerimientos de seguridad. La especificación Java EE define dos contenedores: Web Container y EJB Container (como se puede ver en Imágen 02 - Arquitectura Java EE). Estos contenedores son los responsables de manejar los componentes correspondientes. El Web Container administra la ejecución de la página y servlets JSP [2.1] componentes de aplicaciones J2EE. Componentes web y su contenedor se ejecutan en el servidor J2EE. Mientras que EJB Container administra la ejecución de beans enterprise para aplicaciones J2EE. Beans Enterprise y su contenedor se ejecutan en el servidor J2EE. Para profundizar en el tema, sugerimos al lector continuar leyendo en el siguiente link: http://web.ing.puc.cl/~dmery/Presentations/01_Java_ee.pdf

Imagen 2 - Arquitectura Java EE

14

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.1.1. Investigación de aplicaciones web relacionadas al tema catástrofes naturales Se realizó una investigación sobre las aplicaciones o sitios web existentes, que cuenten con algunas características similares a las planteadas en esta investigación. Si bien las encontradas no todas son desarrolladas en lenguaje JAVA EE, se destacan ciertas características, en el caso de la primeras, sistema de información geográfica, en los que se destaca la visualización de todos los eventos de emergencia, y desastres naturales dentro del mismo mapa, y la información que muestran sobre estos. Por otra parte, en los últimos casos, son sitios web que cuentan con una funcionalidad la cual se destaca, dado que son sistemas que permite realizar donaciones, en uno de ellos cuenta con integración de PayPal [7.3], requerimiento opcional del Proyecto. ❏

Aplicación web ejemplo - RSOE EDIS

Se trata de una web que muestra en un mapa todas las catástrofes en tiempo real. Este mapa refleja los terremotos, tsunamis, erupciones volcánicas, incendios, epidemias, y otros desastres a nivel mundial. Utiliza el motor de Google Maps [7.18], el cual refleja en tiempo real los terremotos, tsunamis, erupciones volcánicas, incendios, epidemias, entre otros. Los datos que se muestran son completamente reales, recogidos de fuentes públicas, de modo que es idóneo para saber todo lo que sucede en el mundo. Cada uno de estos eventos está representado con un icono. El cual al pulsarlo, permite acceder a más información sobre lo que está ocurriendo. Además, la página incluye tablas de información sobre la actividad sísmica o volcánica en el planeta, con datos provenientes de la NASA [7.19]. Aunque su diseño es un poco rústico, cumple de sobra su función: de poder seguir minuto a minuto los desastres que asolan la tierra. También cuenta con un buscador histórico, e incluso permite recibir tweets con las últimas informaciones, mediante su cuenta de Twitter [12.1]. Si bien a continuación se muestran algunas imágenes, se deja el link de la aplicación para que el lector pueda visualizarlo e ingresar, el mismo es : http://hisz.rsoe.hu/alertmap/index2.php.

15

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 03 - Mapa aplicación RSOE EDIS

Imágen 4 - Histórico de desastres naturales - Aplicación RSOE EDIS

16

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY



Aplicación web ejemplo - Reliefweb

ReliefWeb es un servicio digital especializado de la OCHA (United Nations Office for the Coordination of Humanitarian Affairs) vigente desde 1996. Este portal alberga más de 500.000 informes sobre la situación humanitaria, comunicados de prensa, evaluaciones, directrices, mapas e información. Fue diseñado específicamente para ayudar en la prestación efectiva de asistencia de emergencia Dentro de sus funciones principales se encuentran, recoger y analizar fuentes de información globales. Entregar el contenido a la audiencia global de ReliefWeb, el cual incluye informes de desastres, mapas, infografías, anuncios de trabajo y oportunidades de aprendizaje, así como eventos de interés. En la sección de desastres, se puede visualizar un mapa con los desastres ocurridos, identificados con un icono diferente cada uno de ellos. Y al situarse por encima de alguno de ellos, muestra información relacionada al evento como se podrá ver en las siguientes imágenes. Si bien a continuación se muestran algunas imágenes, se deja el link de la aplicación para que el lector pueda visualizarlo e ingresar, el mismo es: http://reliefweb.int/disasters

Imágen 5 - Mapa aplicación Reliefweb

17

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imagen 6 - Información relacionada a evento - Aplicación Reliefweb

18

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY



Aplicación web ejemplo - GDACS (Global Disaster Alert and Coordination System)

GDACS es un marco de cooperación en el marco de las Naciones Unidas [4.6], el cual desarrolla normas y directrices para el intercambio de información internacional en desastres. Ofrece la plataforma de coordinación en tiempo real "VirtualOSOCC" ( http://vosocc.gdacs.org ) a los administradores de desastres en todo el mundo. Además, coordina la creación y difusión de mapas de desastre y las imágenes de satélite. Incluye la gestión de desastres y sistemas de información de desastres en todo el mundo y tiene como objetivo llenar el vacío de información y coordinación en la primera fase después de grandes desastres. El mismo proporciona acceso en tiempo real a los sistemas de información de desastres basados en la web y herramientas de coordinación relacionados. Algunos de los servicios más importantes que brindados son proporcionar alertas y estimaciones de impacto después de grandes desastres a través de un servicio de evaluación de impacto de desastres y/o peligros múltiples administrado por el Centro Común de Investigación de la Comisión Europea (CCI). Los desastres de inundación son proporcionados por el Observatorio de inundaciones de Dartmouth. Los datos pertinentes se integran automáticamente en GDACS alertas y estimaciones de impacto. Si bien a continuación se muestran algunas imágenes, se deja el link de la aplicación para que el lector pueda visualizarlo e ingresar, el mismo es: http://www.gdacs.org/

Imágen 7 - Mapa y sitio principal - Aplicación GDACS

19

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 8 - Información relacionada a evento - Aplicación GDACS



Aplicación web ejemplo - Restablecimiento del contacto entre familiares

Este es un sitio web para reportar personas desaparecidas. El Comité Internacional de la Cruz Roja se encarga de la gestión de este sitio en cooperación con las Sociedades Nacionales de la Cruz Roja y de la Media Luna Roja. Cada año, miles de familiares quedan separados a causa de conflictos, desastres o la migración. La pérdida del contacto con los seres queridos y el hecho de no saber dónde están y si están bien causan terribles sufrimientos. El CICR (Comité Internacional de la Cruz Roja) y las Sociedades Nacionales de la Cruz Roja y de la Media Luna Roja trabajan juntos alrededor del mundo para localizar a personas y ponerlas de nuevo en contacto con sus familiares. Esta actividad incluye la búsqueda de familiares, restablecimiento del contacto, la reunión de familiares dispersos y el hecho de tratar de esclarecer la suerte que han corrido las personas que siguen siendo dadas por desaparecidas.

20

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 9 - Sitio web: Restablecimiento del contacto entre familiares

La Cruz Roja Uruguaya ayuda a las personas a buscar a un familiar en Uruguay. Además, la Cruz Roja Uruguaya, junto con el CICR y las Sociedades Nacionales de la Cruz Roja y de la Media Luna Roja de otros países, ayuda a las personas en Uruguay a buscar familiares en otro país. Trata de ayudar cuando las personas hayan perdido el contacto a raíz de un conflicto armado u otra situación de violencia; una catástrofe natural o provocada por el hombre; la migración; la II Guerra Mundial, o, en lo posible, en otra situación en que necesite ayuda por razones humanitarias. A su vez, el CICR proporciona certificados de detención a uruguayos detenidos que haya visitado. Si bien a continuación se muestran algunas imágenes, se deja el link de la aplicación para que el lector pueda visualizarlo e ingresar, el mismo es: http://familylinks.icrc.org/es/Paginas/inicio.aspx

21

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

❏ Aplicación web ejemplo : OXFAM México Oxfam es una confederación internacional de 17 organizaciones que trabajan en aproximadamente 95 países de todo el mundo para encontrar soluciones a la pobreza y lo que se considera Injusticia en todo el mundo. Cuentan con un sitio web, el cual permite realizar donaciones, utilizando la voz, es decir telefónicamente, o con un cambio de estilo de vida, donando tiempo o dinero, las personas pueden escoger la forma de realizar las donaciones. Además, para las donaciones económicas, el sitio está integrado a PayPal.

Imágen 10 - Sitio web: OXFAM

22

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imagen 11 - Sitio web: OXFAM - Métodos para donaciones

23

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.2. Aplicaciones y desarrollo de móviles Una aplicación móvil o app es una aplicación informática diseñada para ser ejecutada en smartphones, tablets y otros dispositivos móviles. Por lo general se encuentran disponibles a través de plataformas de distribución, operadas por las compañías propietarias de los sistemas operativos móviles como Android [3.4], IOS [3.5], BlackBerry OS [3.6], Windows Phone [3.8], Firefox [3.7].

Imágen 12 - Aplicaciones móviles

Android es un conjunto de herramientas de software de código abierto para teléfonos móviles que fueron creadas por Google y Open Handset Alliance[7.4]. Una plataforma para dispositivos móviles que contiene una pila de software donde se incluye un sistema operativo, middleware y aplicaciones básicas para el usuario. En las siguientes líneas se dará una visión global por capas de cuál es la arquitectura empleada en Android. Cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a su vez los suyos propios a las capas de niveles superiores, tal como muestra la siguiente imagen:

24

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 13 - Arquitectura aplicaciones Android

El nivel de Aplicaciones contiene las aplicaciones incluidas por defecto de Android como las añadidas por el usuario posteriormente. Todas estas utilizan los servicios, las API [7.5] y bibliotecas de los niveles anteriores. Framework de aplicaciones representa fundamentalmente el conjunto de herramientas de desarrollo de cualquier aplicación. Toda aplicación que se desarrolle para Android, utilizan el mismo conjunto de API y el mismo framework, representado por este nivel. Entre las API más importantes ubicadas aquí, se pueden encontrar las siguientes: ·Activity Manager: Conjunto de API que gestiona el ciclo de vida de las aplicaciones. ·Window Manager: Gestiona las ventanas de las aplicaciones y utiliza la biblioteca Surface Manager. ·Telephone Manager: Incluye todas las API vinculadas a las funcionalidades propias del teléfono (llamadas, mensajes, entre otros.). ·Content Provider: Permite a cualquier aplicación compartir sus datos con las demás aplicaciones de Android. Por ejemplo, gracias a esta API la información de contactos, agenda, mensajes, entre otros. Será accesible para otras aplicaciones. 25

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

·View System: Proporciona un gran número de elementos para poder construir interfaces de usuario (GUI), como listas, mosaicos, botones, "check-boxes", tamaño de ventanas, control de las interfaces mediante teclado, entre otros. Incluye también algunas vistas estándar para las funcionalidades más frecuentes. ·Location Manager: Posibilita a las aplicaciones obtener información de localización y posicionamiento. ·Notification Manager: Mediante el cual las aplicaciones, usando un mismo formato, comunican al usuario eventos que ocurran durante su ejecución: una llamada entrante, un mensaje recibido, conexión Wi-Fi disponible, ubicación en un punto determinado, entre otros. Si llevan asociada alguna acción, en Android denominada Intent, (por ejemplo, atender una llamada recibida) ésta se activa mediante un simple clic. ·XMPP Service: Colección de API para utilizar este protocolo de intercambio de mensajes basado en XML [1.3].

La capa de bibliotecas se corresponde con las bibliotecas utilizadas por Android. Éstas han sido escritas utilizando C/C++ [1.6] y proporcionan a Android la mayor parte de sus capacidades más características. Junto al núcleo basado en Linux, estas bibliotecas constituyen el corazón de Android. Al mismo nivel que las bibliotecas de Android se sitúa el entorno de ejecución. Éste lo constituyen las Core Libraries, que son bibliotecas con multitud de clases Java y la máquina virtual Dalvik. Android utiliza el núcleo de Linux 2.6 como una capa de abstracción para el hardware disponible en los dispositivos móviles. Esta capa contiene los drivers necesarios para que cualquier componente hardware pueda ser utilizado mediante las llamadas correspondientes. Siempre que un fabricante incluye un nuevo elemento de hardware, lo primero que se debe realizar para que pueda ser utilizado desde Android es crear las bibliotecas de control o drivers necesarios dentro de este kernel de Linux embebido en el propio Android.

2.2.1

Desarrollo de aplicaciones móviles

Mientras muchos análisis se concentran en cómo se acomoda el mercado con el increíble crecimiento de la conexión móvil, es necesario también observar cuál es el motor de ese crecimiento. En ese sentido, América Latina emerge con una respuesta casi unánime: una nueva forma de vincularse con el espacio público. Se sabe que el mayor crecimiento del uso de Internet tiene lugar en Latinoamérica, donde el 43% de los habitantes está conectado. Se espera que para el 2016, la conectividad supere el 50%. Esto representa un 13% de crecimiento anual, superior a cualquier otra región en el mundo. Mientras menos de la mitad de la población tiene acceso a Internet en su casa, la mayoría tiene una conexión móvil. Esto puede tener su raíz en la diferencia de costos: es más económico poseer un smartphone con paquete de datos, que una computadora y una conexión en el hogar.

26

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

La empresa VisionMobile realizó un informe Developer Economics, en el cual se analizan las tendencias del mercado en cuanto al interés de los desarrolladores por el segmento de la movilidad en el primer semestre de 2014. El estado del desarrollo de aplicaciones móviles parece bastante claro: Android e IOS tienen la mayor cantidad de ventas de software en smartphones según este estudio. De todos modos, parte de los desarrolladores trabaja de forma paralela en ambas plataformas móviles. Otra gran plataforma es HTML5 [1.4], este estándar abierto que es la base de propuestas como Firefox OS, entre otras, pero que aún no se siguen considerando tanto como IOS, o Android como su plataforma de preferencia. Cabe destacar también, que el uso de HTML5 es muy dispar por lo que no sólo se contempla para aplicaciones nativas, sino también como parte de aplicaciones híbridas e incluso como alternativa para, por ejemplo, mostrar la documentación de una aplicación. Pero a pesar de la aparición de plataformas alternativas, la realidad es que hoy por hoy Android e IOS marcan la pauta, y según estudios, lo seguirán haciendo durante al menos los próximos tres años. Por otra parte, Windows Phone ha crecido en interés, una cuarta parte de los desarrolladores móviles tienen a Windows Phone como plataforma objetivo. El interés por los dispositivos móviles no se limita a smartphone, sino que también los tablets (entre otros) también generan interés. Estos, son una opción de desarrollo, que es considerada como prioritaria el momento de desarrollar aplicaciones y sobre todo juegos. Dentro del desarrollo de móviles existen muchas herramientas que colaboran para el desarrollo del mismo, esta investigación se centrará específicamente en Android y Phonegap. Android SDK (Software Development Kit) es el kit de desarrollo necesario para programar e implementar todo tipo de aplicaciones para Android, el sistema operativo para teléfonos móviles, tablets, wearables entre otros de Google. Este paquete o kit de desarrollo incluye las APIs y herramientas necesarias para desarrollar las aplicaciones utilizando Java como lenguaje de programación y testear el código, respectivamente. Las plataformas de desarrollo soportadas incluyen Linux [3.1], Mac OS X [3.3], y Windows [3.2]. La plataforma IDE [7.1] soportada oficialmente por el momento es Eclipse junto con el complemento ADT (Android Development Tools plugin) [7.2], aunque también puede utilizarse un editor de texto para escribir ficheros Java y XML y utilizar comandos en un terminal para crear y depurar aplicaciones. El SDK permite controlar los dispositivos Android que estén conectados, reiniciarlos, instalar aplicaciones en remoto, entre otros. Las Actualizaciones del SDK están coordinadas con el desarrollo general de Android. El SDK soporta también versiones antiguas de Android, por si los programadores necesitan instalar aplicaciones en dispositivos ya obsoletos o más antiguos. Las herramientas de desarrollo son componentes descargables, de modo que una vez instalada la última versión, puede instalarse versiones anteriores y hacer pruebas de compatibilidad.

27

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Android Studio es un nuevo entorno de desarrollo de Android basado en IntelliJ IDEA. Ofrece nuevas características y mejoras con respecto a Eclipse ADT y será el IDE oficial de Android una vez que esté listo. Algunas de las principales funciones que Android Studio ofrece son un sistema de construcción a base de Gradle, permite la generación de APK. Cuenta con plantilla de apoyo ampliado para los servicios de Google y varios tipos de dispositivos. Además de editor de diseño Rich con soporte para la edición de tema y herramientas para mejorar rendimiento, usabilidad, compatibilidad de versiones, y otros problemas. Otra de sus ventajas, son la herramienta ProGuard, la cual permite optimizar el código mediante la eliminación de código sin usar y cambiar el nombre de las clases, campos y métodos con nombres semánticamente. Y soporte integrado para Google Cloud Platform, lo que facilita la integración de Google Cloud Mensajería y App Engine. Por otra parte, PhoneGap es un framework para el desarrollo de aplicaciones móviles producido por Nitobi [7.6, y comprado posteriormente por Adobe, PhoneGap permite a los programadores desarrollar aplicaciones para dispositivos móviles utilizando herramientas genéricas tales como JavaScript, HTML5 y CSS3[1.5]. Las aplicaciones resultantes se denominan híbridas, ya que no son aplicaciones nativas al dispositivo, el renderizado se realiza mediante vistas web y no con interfaces gráficas específicas de cada sistema, esto no quiere decir que sean aplicaciones web. En la tercera versión de PhoneGap se incorpora el uso de una interfaz de comandos a través de consola, una nueva arquitectura de complementos descentralizados y la posibilidad de utilizar un código web unificado para crear múltiples proyectos. PhoneGap maneja APIs que permiten tener acceso a elementos como el acelerómetro, la cámara, los contactos en el dispositivo, la red, el almacenamiento, las notificaciones, y otros elementos del teléfono. Estas APIs se conectan al sistema operativo usando el código nativo del sistema huésped a través interfaces en Javascript. El código puede ser ejecutando en un navegador web, sin tener que utilizar un emulador necesariamente, existe la posibilidad de soportar funciones sobre frameworks como Sencha Touch [2.2] o JQuery Mobile [2.3].

28

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 14- Arquitectura PhoneGap

Este framework es una distribución de Apache Cordova [2.4]. La aplicación se llamó en un principio "PhoneGap", y posteriormente "Apache Callback". Ambos sistemas tienen funciones casi idénticas, la diferencia principal entre Apache Cordova y Phonegap es que el segundo tiene acceso a servicios de compilación en la nube proporcionados por Adobe Creative Cloud [7.7]. Apache Cordova es un software de código abierto y tanto este como PhoneGap pueden ser utilizados libremente en cualquier aplicación sin necesidad de atribución o licencias de ningún tipo. Apache Cordova está disponible para las siguientes plataformas: IOS, Android, Blackberry, Windows Phone, Palm WebOS [3.11], Bada [3.10] y Symbian [3.9]. Si es de interés del lector, se puede profundizar sobre estos temas en el Anexo [D] Investigación tecnologías móviles.

29

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.2.2 Investigación de aplicaciones Naturales para Móviles

relacionadas

a

Catástrofes

Existen muchas aplicaciones relacionadas a catástrofes naturales, algunas más específicas, como por ejemplo: Hurricane Express, aplicación para iPhone. La cual se especifica en cierto tipo de catástrofes, como ser Huracanes. Y puntualmente centralizan toda la información en estos casos. Dado que existen tantas aplicaciones que alertan en caso de catástrofes, se seleccionaron algunas que se asemejan a la realidad planteada en el Proyecto, y utilizan las tecnologías requeridas para el mismo. A su vez, se realizó una evaluación de las mismas, instalando estas en dispositivos móviles, y viendo su funcionamiento. Dentro de las aplicaciones Android se encuentran: ❏

Aplicación ejemplo : RSOE EDIS Notifier Lite

Esta aplicación monitorea y da tratamiento a los datos de varias organizaciones extranjeras para obtener información rápida y certificada, y estos datos se publican de forma continua en el sitio web. De esta forma, los nuevos eventos aparecen no sólo en el sitio web de EDIS, sino también en la aplicación de smartphones RSOE SEDA. Utilizando la tecnología Push [7.8], la aplicación proporciona información en tiempo real sobre los acontecimientos del mundo. Funciona en celulares con Android y con conexión activa a Internet. Hay cinco niveles de notificación (5 emergencia, 4 alta, 3 normal, 2 moderada, 1 Baja), cada uno de los que puede asignar un sonido de notificación diferente. También puede configurar las llamadas horas de silencio durante el cual sólo recibe nivel 5 mensajes. En caso de preferir no tener ningún sonido de notificación, se puede activar el LED parpadea o el modo de vibración.

Imagen 15 Aplicación RSOE EDIS Notifier Lite (1)

30

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imagen 16 Aplicación RSOE EDIS Notifier Lite (2)

Imagen 17 - Aplicación RSOE EDIS Notifier Lite (3)

31

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY



Aplicación ejemplo : Disaster Alert

Esta aplicación gratuita funciona para IOS o Android. La misma muestra los peligros activos en forma interactiva con mapa y en lista a medida que se están produciendo en todo el mundo. Permitiendo además que la información de situaciones de peligro pueda ser vista y compartida. Incluye: huracán, ciclón tropical, terremoto, inundaciones, vientos altos, tormenta, tsunami, volcán. Entre otras, algunas características de la aplicación son: ver peligros activas en un mapa interactivo o en la lista de alerta, búsqueda de ubicación (zoom rápido), recibir actualizaciones automáticas cada cinco minutos, permite elegir una zona horaria preferida, entre otros.

Imágen 18 - Aplicación Disaster Alert

32

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 19 - Aplicación Disaster Alert - Imagen tomada como usuarios de la aplicación



Aplicación ejemplo : Emergency Alert

Esta aplicación alerta de eventos urgentes vía SMS, incluso cuando el teléfono está en silencio. Permite crear reglas que permitan activar los mensajes SMS que comienzan o contienen texto, o que sean de un número específico. El modo de aviso de estos SMS es con formato especial, es decir, cuando se activa, la aplicación puede avisarle de tres maneras: alerta verde (Muestra un mensaje emergente del remitente), alerta amarilla (vibrará hasta que lo vea, lo que le permite estar en silencio notificado de un asunto urgente), alerta roja (avisa con una alarma fuerte y vibraciones hasta que se vea el aviso (alerta), sin importar la configuración de sonido del dispositivo). Si la persona tiene un auricular conectado, utilizará el volumen actual.

Imágen 20 - Aplicación Emergency Alert (1)

33

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 21 - Aplicación Emergency Alert (2)

Imágen 22- Aplicación Emergency Alert (3)

34

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY



Aplicación ejemplo : Yo Reporto

Aplicación Colombiana creada por la Unidad Nacional para la Gestión del Riesgo de Desastres (UNGRD) [4.7] la cual permite notificar los fenómenos naturales ocurridos en su entorno. Luego de ingresar sus datos personales, los usuarios pueden reportar las avalanchas, colapsos, deslizamientos, erupciones volcánicas, heladas, huracanes, incendios estructurales o forestales, inundaciones, lluvias, sequías, sismos, tormentas eléctricas o tropicales, vendavales y tsunamis. También deben clasificar el fenómeno en un nivel de riesgo alto, medio o bajo, indicar el municipio en donde ocurrió el hecho y, si lo desean, agregar fotografías del suceso. En cuanto a los reportes en línea son sistematizados en una base de datos nacional y, después de realizar una revisión y evaluación de la información, la UNGRD procede a activar los sectores involucrados en el evento, ya sean los consejos departamentales o municipales, como también las fuerzas militares, policía, bomberos y defensa civil para realizar la intervención de manera urgente. Es una aplicación gratuita, que se encuentra disponible para Android e IOS, y como mayor ventaja frente a las anteriores realiza reportes en línea, sobre todos los eventos ocurridos.

Imágen 23 - Aplicación Yo Reporto

35

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imágen 24 - Aplicación Yo Reporto (2)

36

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY



Aplicación ejemplo : GiveEasy

Es una aplicación australiana que permite donar fondos a las apelaciones y las organizaciones benéficas directamente de su tarjeta de crédito, en cualquier momento y en cualquier lugar. Sus amigos y colegas están aún notificados de sus donaciones a través de Facebook [6.1] y Twitter [6.2]. Opera como una empresa social australiana dedicada a hacer el futuro de dar una realidad. Los fondos excedentes serán canalizados de nuevo al sector de la caridad. GiveEasy es una plataforma única que permite dar caridades y hace que conectarse a un nuevo mundo de entrega móvil y digital a través de soluciones que incluyen: la App GiveEasy, su propia caridad medida App, donaciones SMS, una plataforma móvil y peer-to-peer crowd funding y soluciones de donación de escritorio.

Imágen 25 - Aplicación GiveEasy

37

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imagen 26 - Aplicación GiveEasy (2)

38

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

En la siguiente tabla se muestra la evaluación y comparación de las aplicaciones móviles antes mencionadas:

Tabla 1 - Comparación de aplicaciones móviles

Como resultado de la investigación realizada acerca de aplicaciones web y móviles que brindan soporte y canalizan toda la información ante catástrofes naturales (de socorro, pedidos de ayuda, reportes de personas desaparecidas, donaciones, entre otros), se encontraron diferentes aplicaciones, las cuales cuentan con ciertas características a destacar y de gran interés para nuestro proyecto. Cabe destacar no se encontró ninguna aplicación desarrollada en Phonegap. Por ejemplo, la aplicación “Disaster Alert”, la cual cuenta con un mapa interactivo (geolocalización) donde se plasman los desastres naturales, por otro lado “Yo reporto” realiza reportes e indicadores, lo cual es otra de las funcionalidades importantes de nuestro sistema. “Restablecimiento del contacto entre familiares”, que si bien es un sitio dedicado especialmente a la búsqueda de personas desaparecidas, se podría tomar como patrón a seguir para las denuncias que se realicen en nuestro sistema. En base a todo lo anterior, si bien no existe ninguna aplicación que cuente con exactamente las mismas funcionalidades solicitadas para la asignatura de Proyecto, se podría tomar como referencia las características más destacadas dentro de las aplicaciones investigadas.

39

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Problema planteado En los últimos años las aplicaciones móviles para alertas sobre desastres naturales en el mundo han tenido un gran crecimiento. Se pretende construir una plataforma de soporte ante catástrofes naturales, el cual tiene como finalidad centralizar toda la información relevante en un portal web, que permita acceder a las últimas novedades, reportar personas desaparecidas, realizar pedidos de ayudas en caso de emergencias, realizar donaciones, reportar personas desaparecidas, buscar personas desaparecidas. Además de las aplicaciones móviles, una para pedir ayuda, y la otra diseñada para que los rescatistas puedan ejecutar los planes de riesgo y emergencia. El análisis y desarrollo de las mismas se realizó en base a la entrevista realizada en SINAE [A] y la investigación realizada sobre este tipo de aplicaciones, como se mencionó en el Estado del Arte. En los siguientes apartados, se comienza brindando una breve descripción de la arquitectura de la plataforma de soporte para las catástrofes identificando sus principales componentes, para luego abordar los problemas encontrados y soluciones a los mismos, además de un repaso por las diferentes funcionalidades del sistema. .

40

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

1. Arquitectura de la solución A continuación se presenta la arquitectura (simplificada) sobre la cual está diseñada e implementada la aplicación.

Imagen 27 – Diagrama de Implementación

La solución está compuesta por cuatro capas lógicas bien diferenciadas: Data Access Layer, Bussines Logic Layer, Web Services Layer, Presentation Layer.

2.2

Presentation Layer

La capa de presentación provee las funcionalidades y componentes que permiten interactuar con la plataforma, ejecutar acciones y desplegar la información resultante de las solicitudes realizadas por los usuarios. Esta capa obtiene la información a través de solicitudes a la capa de 41

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

servicios, la cual verifica y valida las peticiones realizadas, y retorna la información solicitada. La presentación realiza a su vez validaciones para determinar datos o valores requeridos y así evitar realizar innecesariamente consultas inválidas al sistema. La lógica de negocio aplicada en esta capa es usualmente redundante respecto a la existente en la capa lógica de negocios y existe con el solo propósito de realizar dichas validaciones en forma rápida dentro de esta capa para permitir una interacción ágil y fluida con el usuario.

2.3

Web Services Layer

La capa de servicios provee los mecanismos para que los diferentes sistemas externos interactúen con el sistema y puedan intercambiar información con el mismo. La capa expone los servicios mediante servicios web RESTful los que permiten un intercambio ágil y sencillo entre los diferentes clientes interconectados al sistema. Los clientes consumen información de dichos servicios mediante el intercambio de mensajes los que contienen los datos relevantes a cada petición. Las peticiones son realizadas a los diferentes recursos expuestos, tales recursos proveen diferentes servicios y se agrupan en función de la afinidad de los servicios en cuestión. Este agrupamiento permite mantener un nivel de cohesión adecuado y relevante, y a la vez conservar independencia entre servicios no relacionados y disminuir la dependencia entre ellos. Los servicios expuestos permiten a las capas superiores obtener la información del sistema y luego estos desplegaran dicha información como corresponda, dependiendo de los dispositivos y funcionalidades involucradas. El intercambio entre los diferentes sistemas y los servicios se realiza sobre HTTPS y se utilizan mensajes planos en formato JSON.

2.4

Bussines Logic Layer

La capa de negocios contiene los comportamientos y reglas definidas que permiten ejecutar los casos de uso diseñados. Dichos comportamientos, los cuales son ejecutados por los usuarios del sistema al interactuar con el sistema, refieren a los procesos y flujos de ejecución necesarios para implementar las funcionalidades que definen el sistema. Estos comportamientos poseen reglas las que permiten las diferentes actividades se lleven a cabo conforme a las pre condiciones definidas para los diferentes casos de uso del sistema. La capa de negocios del sistema recibe las acciones de las capas superiores por intervención de los usuarios del sistema. Dichas acciones implican diferentes flujos de ejecución del sistema, en los cuales la capa deberá consumir servicios de las capas inferiores, como por ejemplo la capa de acceso a datos. Durante la ejecución de dichos flujos la capa implementará los controles y reglas definidas a fin de satisfacer las pre condiciones necesarias, retornando a las capas superiores los resultados y mensajes resultantes de las operaciones. Estos resultados serán presentados de diferentes formas y será responsabilidad de la capa superior establecer el formato y desplegar tal información. Esta información consiste en datos obtenidos de las operaciones, mensajes retornados por el sistema referente a las solicitudes realizadas o errores sucedidos durante la ejecución de tales operaciones.

42

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.5

Data Access Layer

La capa de acceso a datos provee servicios que permiten obtener y persistir la información del sistema, la cual se almacena en los orígenes de datos definidos para el sistema. A su vez la capa transforma la información obtenida de los orígenes de datos a instancias de objetos para proveer la información a las capas superiores conforme al diseño del sistema. Análogamente transforma la información recibida en instancias de objetos para poder ser persistidos en los orígenes de datos.

2. Plataforma web 2.1 Tecnologías PrettyFaces PrettyFaces es una librería que se agrega al sistema y permite realizar la redirección de URLs de forma sencilla. En nuestro caso lo usamos para construir todas las URL del sitio haciendo las mismas más amigables. Ej: http://servidor/nombredesastre/help La URL de ejemplo permite a simple vista saber dónde el usuario está accediendo, en este caso está dentro de un desastre x, en la página de pedir ayuda. El uso de esta librería nos generó problemas a la hora de subir archivos al servidor, luego de realizar una investigación para intentar solucionar el problema llegamos a que el problema era que la librería entraba en conflicto con el componente Undertow del Servidor de Aplicaciones WildFly que estábamos utilizando. Explorando en la web dimos con una versión modificada del componente Undertow que solucionaba el problema, por lo que cambiamos en el servidor este componente por el que solucionaba el error. Constatamos que en versiones reciente de WildFly el problema aún persiste. REST Para la implementación de los web services utilizamos RESTEasy, un proyecto JBoss que facilita la tarea de construir web services REST. Es una aplicación certificada y una implementación de la especificación JAX-RS. JAX- RS es una especificación JCP que proporciona una API de Java para REST Web Services a través del protocolo HTTP.

43

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Base de Datos En una primera instancia queríamos usar como solución de almacenamiento, PostgreSQL con Hibernate ya que se trata de un ORM robusto. Luego nos decidimos por usar MongoDB, una base de datos no relacional y con buena performance. La razón del cambio fue que no fue posible crear base de datos en forma dinámica, lo que era necesario para la creación de los diferentes sitios (catástrofes) a demanda del administrador sin tener que realizar ninguna tarea adicional más que la creación en la plataforma del sitio en sí. MongoDB nos permitió crear base de datos a demanda en tiempo real. Al utilizar ese gestor de base de datos tuvimos que generar nuestro propio ORM para convertir los datos, para ello se crearon clases que se encargan de la comunicación con MongoDB y realizan la transformación de los datos para ser persistidos. Todos los controle de integridad referencial se realizan en el código. Servidor de Aplicaciones Para definir el servidor de aplicaciones se probaron 2 opciones, la primera fue JBoss Enterprise Aplication Platform (Jboss EAP) 6 que viene con la versión 7 del Aplication Server, es un servidor que ya tiene un tiempo y su rendimiento es bajo. La segunda opción y la elegida fue WildFly 8.1, que es un servidor nuevo y mucho mas rápido que el anteriormente mencionado. Se tuvieron algunos inconvenientes en su uso al inicio , pero luego fueron solucionados. Estadísticas de Uso Para la generación de las gráficas de estadísticas de uso, utilizamos métricas que desarrollamos nosotros mismos, esto se realiza a través de un Javascript que envía los datos del cliente al backend, estos datos son; el navegador que se está utilizando, el sistema operativo, país de acceso y la pagina que está visitando, esto se almacena en la base de datos y luego se genera el reporte agrupando los diferentes datos para la generación de las gráficas. Lo deseado hubiera sido utilizar Google Analytics, pero al analizarlo nos dimos cuenta de que es una herramienta compleja de implementar y ya no contábamos con el tiempo para utilizarla.

44

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.2 Backend El backend es el principal componente de la plataforma ya que contiene toda la lógica de negocios además de exponer y atender los web services REST que el mismo implementa. En el mismo se realizan todas las tareas de administración y la creación de los diferente tenants. Está dividido en dos partes, una para usuarios administradores y otra para los usuarios rescatistas. A continuación se detallan sus funcionalidades, se resaltan las más interesantes y aquellas que generaron algún tipo de problema y como llegamos a su la solución.

2.2.1 Usuarios El backend permite el acceso a usuarios del tipo administradores o rescatistas, la administración de los mismos la realizan los mismos administradores, para profundizar los detalles sugerimos al lector Anexo G – Alcance del Sistema en los puntos: 2.2.1, 2.2.2, 2.2.12, 2.2.14, y 2.2.15.

2.2.2 Organizaciones (ONG) Los usuarios administradores pueden gestionar las ONG, tanto lo referente a información de las mismas como su inclusión en las diferentes catástrofes en las que actúan, para profundizar los detalles sugerimos al lector Anexo G – Alcance del Sistema en los puntos: 2.2.3 y 2.2.4.

2.2.3 Catástrofes Cada catástrofe (o desastre) representa un nuevo sitio en el sistema (tenant) , solo los usuarios cuyo rol sea el de administrador pueden darlo de alta y luego completar los demás componentes del mismo como ONGs, Fuentes de Noticias, Galería de Imágenes, entre otros. Para profundizar los detalles sugerimos al lector Anexo G – Alcance del Sistema en el punto: 2.1.3.

2.2.4 Reportes Los usuarios administradores y también los rescatistas podrán acceder a cuatro reportes; reportes de donaciones en el tiempo, reportes de solicitudes de pedidos de ayuda en el tiempo, reporte de personas desaparecidas en el tiempo y reporte de estadísticas de uso del sitio web. El último reporte consta de 3 gráficas, la primera muestra las visitas diarias a la plataforma, la segunda la cantidad de visitas por país y la tercera la cantidad de visitas por sitio (desastre). Para profundizar los detalles sugerimos al lector Anexo G – Alcance del Sistema en el punto: 2.2.9.

2.2.5 Gestión de Riesgo Los usuarios cuyo rol sea rescatista podrán crear la gestión de riesgo y completar todas las etapas del mismo, estos planes pueden ser asignados a más de un desastre ya que la

45

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

información que contienen pude aplicar para más de un caso, para profundizar los detalles sugerimos al lector Anexo G – Alcance del sistema en los puntos: 2.1.2, 2.2.10 y 2.2.11.

2.2.6 Plan de Emergencia Los usuarios cuyo rol sea rescatista podrán acceder a los desastres que se encuentran activos en el sistema, allí verán los detalles del mismo, y podrán asignar el plan de gestión de riesgo correspondiente, así como también asignar a los rescatistas que van a socorrer el desastre , además de crear y asignar a estos las tareas del plan de emergencia que deben ejecutar cuando concurran al desastre a brindar ayuda. Para profundizar los detalles sugerimos al lector Anexo G – Alcance del sistema en los puntos: 2.1.2, 2.2.10 y 2.2.11.

2.2.7 Pedidos de ayuda y personas desaparecidas Los usuarios cuyo rol sea rescatista tendrán acceso a un reporte con las personas que se encuentran desaparecidas y su estado, si dan con el paradero de la misma o encuentra información relevante, lo pueden reportar en el sistema. Lo mismo sucede con los pedidos de ayuda, esto serán resueltos por los rescatistas vía web o bien por la aplicación híbrida PhoneGap.

2.2.8 Notificaciones El sistema envía notificaciones vía mail a los usuarios administradores o rescatistas cuando: son dados de alta, se olvidan de sus contraseñas. Cuando se les asigna tareas del plan de emergencia a un rescatista, también le llega un mail informándole de la asignación.

2.2.9 Fuentes de noticias El sistema cuenta con la posibilidad de añadir fuentes de noticias para complementar la información de la catástrofe. Las noticias se pueden obtener de YouTube, CNN, BBC, Wikipedia y RSS, en todas ellas se filtran los resultados según las palabras claves que el administrador haya ingresado para realizar la búsqueda. Esta información luego se muestra en un sector del frontend. En cuanto a la integración de las fuentes de noticias, nos resulta interesante mencionar que ni BBC ni CNN cuentan con una API pública para consumir información, tienen un servicio de RSS en donde realizamos la búsqueda de palabras claves que el administrador ingresa. Esto da poca flexibilidad a la hora de traer noticias, tampoco se pueden traer noticias viejas, y para la obtención de las mismas se tuvo que consultar varios RSS lo que repercute en una baja performance.

46

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.3

Frontend

El fronted es el acceso público a la plataforma, cuenta con una vista general que contiene un mapa con las catástrofes que se encuentran activas a nivel mundial además de un buscador de catástrofes. A partir de allí o seleccionado una catástrofe en el mapa se accede a los diferentes sitios (desastres) que se encuentran activos en la plataforma, a continuación se detallan las funcionalidades que un sitio de estos puede tener.

2.3.1 Registro y datos personales Cualquier usuario invitado de la aplicación web o Android se puede registrar en la aplicación, además una vez autenticado podrá editar los detalles de la cuenta en una sección prevista para esto, para profundizar los detalles sugerimos al lector Anexo G – Alcance del sistema en el punto: 2.1.4.

2.3.2 Redes Sociales El sistema brinda la posibilidad de que los usuarios utilicen sus cuentas de Twitter o Facebook para loguearse, esto se permite tanto en el sitio web como en la aplicación Android. También es posible añadir a la catástrofe los links oficiales de las redes sociales Facebook, Twitter o YouTube que pertenezcan o estén asociadas a la misma. Facebook Las cuentas de Facebook que podrán registrarse en nuestro sistema son aquellas que estén registrados en la página de Facebook Developers, esto por un tema de política de seguridad de Facebook. Este fue uno de los inconvenientes que encontramos al realizar el login con Facebook, dado que solo los usuarios registrados allí, se pueden loguear en nuestra aplicación, así lo exigen las políticas de Facebook. Twitter Twitter solo fue integrado en el sitio web por razones de tiempo. Utilizamos la librería no oficial Twitter4j, decidimos usar la misma por la facilidad y rapidez en su integración. Lo recomendado por Twitter es utilizar Fabric, que es la api de desarrollo oficial, pero para acceder se debe tener un usuario pre registrado, de lo contrario se debe esperar a que la solicitud de registro sea aceptada para poder hacer uso de la misma. La investigación que se hizo nos indicó que el plugin de Fabric para Eclipse podía entrar en conflicto con otros plugins instalados lo que evidenciaba un riesgo en otros aspectos del sistema. Exploramos otros sitios para ver que integración utilizaban y muchos usan la que elegimos. Resulto una integración más compleja que la de Facebook, ya que no se manejan la sesión del 47

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

usuario, si el mismo esta logueado o no, en cambio el SDK de Facebook si contiene esta información, tampoco devuelve si el usuario había previamente autorizado la aplicación como en cambio Facebook si lo hace. También tenemos que pedirle al usuario la primera vez que intenta loguearse con su cuenta de Twitter su cuenta de email por separado ya que la api no la retorna y es el dato más importante que precisamos para registrar al usuario en nuestro sistema, por lo tanto luego de pedirle el email al usuario se almacena el mismo en la base de datos junto con el resto de información que se obtiene de Twitter. Otro detalle es que si no se le solicita el nombre al usuario, y se obtiene por la API, la misma puede retornar que se alcanzó el límite máximo de consultas posibles, es por eso que muchos sitios que cuentan con login de Twitter, piden en el registro el nombre y el email.

2.3.3 Búsquedas El sistema cuenta con dos buscadores. El primero es de acceso público, permite a los usuarios invitados explorar las diferentes catástrofes. El segundo es el buscador de personas desaparecidas, para hacer uso de este buscador se debe contar con un usuario registrado. Para profundizar los detalles sugerimos al lector Anexo G – Alcance del sistema puntos: 2.2.18 y 2.2.7.

2.3.4 Pedido de ayuda Cualquier usuario que se encuentre logueado en el sitio o desde la aplicación Android (Rescueme) podrá solicitar ayuda, en ambos casos de ser posible tanto el navegador como el dispositivo móvil intentaran geo localizar a la persona. Para profundizar los detalles del mismo sugerimos al lector Anexo G – Alcance del sistema punto: 2.1.1.

2.3.5 Personas desaparecidas Cualquier usuario que se encuentre logueado en el sitio puede reportar una persona como desaparecida, y el resto de los usuarios pueden realizar comentarios para aportar información sobre la desaparición. Para profundizar los detalles sugerimos al lector Anexo G – Alcance del sistema punto: 2.2.6.

2.3.6 Donaciones Los usuarios autenticados tienen acceso a realizar donaciones en la catástrofe que seleccionen, pueden realizar donaciones de dinero, trabajo o bienes. La donación de dinero se realizó con PayPal. Con respecto a la integración con PayPal se optó por la opción más simple. La misma consiste en realizar un POST a una URL de Sandbox de PayPal prevista para estos casos, en la misma se deben pasar los datos de la transacción; un email (en este caso el de la ONG que va a recibir

48

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

el dinero), el monto a donar y una URL de nuestro sitio en donde PayPal devuelve la confirmación del pago.

2.3.7 Active responsive El frontend fue desarrollado para que pueda ser accesible desde cualquier dispositivo móvil sin inconvenientes, para ello se utilizaron funciones del framework CSS bootstrap.

2.3.8 Notificaciones El sitio envía notificaciones vía mail al usuario cuando ocurre alguna de las siguientes cosas: cuando se registra, realiza una donación, pide ayuda, se olvida de la contraseña, reporta una persona desaparecida o hace un comentario sobre otra persona que se encuentra desaparecida.

3. Aspectos visuales Ambos sitios fueron realizados con Bootstrap y se le agregaron componentes visuales que enriquecieran la vista. La vista para móviles también se realizó con componentes de este framework CSS. Para la descripción de la catástrofe se puede hacer uso de un editor de texto enriquecido (FCK Editor) que se encuentra disponible cuando se realiza el alta de la misma. Para el aspecto visual de cada sitio, se puede elegir entre tres paletas básicas de colores; Rojo, Verde o Azul. También el administrador cuenta con la posibilidad de subir un archivo CSS y aplicarlo al sitio, o si lo desea utilizar un editor online de CSS (ACE9 Editor) que se encuentra en la sección de personalización del sitio. Además del aspecto visual, cada sitio cuenta con la posibilidad de subir imágenes que luego serán parte de la galería en la página principal de cada sitio, para ello se utilizó el plugin Flexslider.

49

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

4. Aplicación Android Nativa La aplicación nativa fue desarrollada para que pueda ser instalada en cualquier dispositivo que cuente con la versión 4.4 de Android (kit kat). La vista fue diseñada para que se adapte a diferentes tamaños de pantallas de smartphone.

4.1

Registro

Para registrarse en la aplicación el usuario invitado deberá ingresar sus datos personales, también lo puede realizar mediante su cuenta de Facebook. Para profundizar los detalles del mismo sugerimos al lector Anexo G – Alcance del sistema en el punto 2.

4.2

Login

Podrán loguearse a la aplicación luego de estar registrados ya se con su cuenta de email o Facebook. Las cuentas de Facebook admitidas en el prototipo son aquellas que estén registrados en la página de Facebook Developers, esta medida la impone el SDK de Facebook por motivos de seguridad. Este fue uno de los inconvenientes que encontramos al realizar la integración con Facebook, dado que solo los usuarios registrados allí se pueden loguear en nuestra aplicación, así lo exigen las políticas de Facebook. Para realizar el Login con Facebook, antes mencionado se utilizó el SDK de Facebook la versión 3.20.

Problemas encontrados: 

HashKey Error

En una primera instancia tuvimos inconvenientes con la integración del sdk de Facebook a nuestro sistema. Si un usuario no tenía la aplicación de Facebook instalada, cuando presiona el botón de login con Facebook, abre una nueva ventana pop-up solicitando el email y contraseña de su cuenta de Facebook y la autenticación procedía sin inconvenientes. En cambio sí se tenía la aplicación de Facebook instalada, daba error con el Hashkey. La solución fue comenzar de nuevo la integración revisando paso a paso, al final obteniendo el mismo error. Finalmente dimos con la solución, cuando se genera el hashkey en la terminal de cualquier sistema operativo se devuelve el valor de la misma en consola. Ese hashkey que se copiaba y luego se pegaba en Facebook Developers no quedaba bien ya que para Facebook el hashkey era otro, luego de una investigación se encontró otra forma de generar la hashkey y obtener el valor de la misma desde un archivo binario, de esta forma se solucionó el inconveniente de la diferencia de hashkeys.

50

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

4.3

Pedido de ayuda

Cualquier usuario que se encuentre autenticado en la aplicación Android puede solicitar ayuda, para ellos selecciona el botón de “Help”, el sistema intentara utilizar el GPS para brindar al sistema la posición exacta de la persona, de no poder lograrlo le preguntara en qué tipo de desastre se encuentra, de todas formas el pedido de ayuda siempre se realiza. Para profundizar los detalles del mismo sugerimos al lector Anexo G – Alcance del sistema en el punto 2.

4.4

Noticias

Cualquier usuario autenticado podrá acceder a la sección noticias en donde podrá leer acerca de las catástrofes reportadas que aún se encuentran activas, también desde allí puede ser redirigido al sitio web de la catástrofe que haya seleccionado. Para más detalles de la misma sugerimos al lector Anexo G – Alcance del sistema en el punto:

5. Aplicación Phonegap Hibrida 5.1

Login

Solo los rescatistas que cuenten con un usuario creado podrán acceder a la aplicación.

5.2

Respuesta a pedidos de ayuda

Los rescatistas autenticados tendrán acceso a mapas con los pedidos de ayuda asociados a las catástrofes que tiene asignadas, podrá interactuar con los marcadores del mapa que representan una persona que pidió ayuda , de esta forma pueden ir resolviendo las solicitudes, las mismas son enviadas en el momento al servidor.

5.3

Ejecutar plan de emergencia

Los rescatistas autenticados tendrán acceso a los desastres para los cuales fueron designados, dentro de una catástrofe asignada podrán ver una lista de tareas que deben realizar en el lugar, a medida que van resolviendo las mismas las van seleccionando e inmediatamente se envían al servidor para mantener el estado de la situación actualizado constantemente y en tiempo real. Para profundizar los detalles del mismo sugerimos al lector Anexo G – Alcance del sistema en el punto 2.2.2.

51

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

5.4

Informe

Los rescatistas autenticados tienen acceso al envío del informe del desastre al sistema, el informe consta de texto y archivos multimedia. Dificultades encontradas: El desarrollo en PhoneGap significo una experiencia nueva dado que era un framework con el que ninguno de los integrantes del equipo tenía experiencia previa. Se optó por utilizar un famework UI para facilitar el diseño de las vistas, el seleccionado fue Onsen UI, lo cual facilito mucho la tarea del diseño inicial. También tomo su tiempo comprender el funcionamiento de la interacción entre las vistas y las controladores, las cuales fueron desarrolladas con el framework JavaScript AngulaJS. PhoneGap es un framework muy potente; durante el transcurso del proyecto fuimos conociendo el potencial del mismo y logrando avances cada vez más importantes. Dada la dificultad inicial debida al desconocimiento de la herramienta, la aplicación en PhoneGap fue la que terminamos en último lugar.

52

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Desarrollo del proyecto En esta sección se detalla en primer lugar las diferentes etapas en las cuales se dividió la planificación del proyecto, y luego un análisis de las horas dedicadas. El desarrollo del proyecto se dividió en 4 etapas, las primeras 3 constaron de un mes de duración y la ultima de dos semanas. La primera etapa correspondiente al mes de Setiembre fue dedicada a la investigación de tecnologías y herramientas que utilizamos posteriormente para el desarrollo del prototipo. Se realizó un análisis de la problemática planteada, para esto se realizó un estudio de la situación actual tanto a nivel nacional como mundial, en el cual se relevaron datos de la realidad y hacia donde podíamos orientar nuestra solución. En este mes se fue definiendo que comportamiento debía tener cada uno de los componentes del sistema, y se realizó la planificación para los meses siguientes. La segunda etapa correspondiente al mes de Octubre, se dedicó mayoritariamente al diseño del prototipo, se estableció la arquitectura a seguir, cuales iban a ser las funcionalidades del sistema en base a los requerimientos y todo el modelado del mismo. En esta etapa se documentaron todos los aspectos de la solución, los cuales se encuentran entre los Anexos del presente documento. Se definieron los casos de usos críticos para el sistema y en base a ellos se comenzó con el desarrollo. La tercer etapa correspondiente al mes de Noviembre fue la que tuvo más horas de dedicación, fue un mes dedicado íntegramente al desarrollo y testing de la plataforma web y de las aplicaciones para dispositivos móviles. Durante todas las etapas se tuvieron reuniones quincenales con el tutor, en las cuales recibíamos correcciones de la documentación presentada. También correcciones y sugerencias sobre el prototipo desarrollado, para contar con una mejor solución final. La última etapa correspondiente a las dos primeras semanas de Diciembre se desarrollaron e integraron muchas de las correcciones y sugerencias que nos fueron realizadas, también se finalizó con el desarrollo de los últimos requerimientos pendientes. Se realizaron las pruebas del sistema con el tutor, en donde se probaron todas las funcionalidades propias de cada aplicación y la integración y comunicación entre las mismas. Por último se hizo un deploy final del sistema, cumpliendo con cada uno de los requerimientos pedidos para el prototipo final. Durante cada etapa se mantuvieron reuniones de grupo al menos 3 veces por etapa en las cuales se tomaban decisiones de diseño, desarrollo, entre otras. En cada una de las reuniones se llevó a cabo el estado de situación con respecto a la planificación inicial. 53

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Horas dedicadas Para la asignación de tareas entre los integrantes del grupo y el registro de horas de las tareas se utilizó el gestor de proyectos Redmine. En dicho programa se asignaron las tareas referentes a investigación, documentación y desarrollo. También se registraron los errores que surgieron durante las etapas de testing. Todas las tareas una vez finalizadas fueron marcadas como resueltas y se cargaron las horas que llevo la misma. El proyecto en total llevo unas 706 horas de dedicación, a continuación se encuentra un detalle de las distribución de las mismas entre los puntos que nosotros encontramos como más relevantes. En análisis y diseño se contempla toda la definición del sistema, con sus diagramas y documentación correspondiente, la cual es parte de este documento en varios anexos. La etapa de investigación consistió en definir que tecnologías eran las más adecuadas para el desarrollo del proyecto, así como también se realizó una investigación sobre la problemática planteada. Pruebas de concepto se refiere a los primeros pasos de cada tecnología utilizada y a la realización de pequeños prototipos de cada aplicación. Desarrollo refiere a la codificación de todo el sistema (web y móviles), y testing a las pruebas realizadas sobre todas las aplicaciones desarrolladas en busca de errores que se encontraron y luego fueron solucionados. Pruebas de aceptación y arreglos se refiere al tiempo invertido en los encuentros con el tutor y el desarrollo y revisión de las correcciones y sugerencias que nos realizó. También refiere a las pruebas realizadas sobre la plataforma entera para la aceptación de la misma. Por ultimo Deploy contempla el deploy del sistema en la nube de OpenShift y la carga de datos del sistema para las presentaciones. Actividad

Total de Horas

Análisis

58,2

Diseño

123

Investigación

38,8

Desarrollo

304,05

Pruebas de concepto

30,75

Testing

63,2

Deploy

17,4

Pruebas de aceptación y arreglos

69,6

Total

706 Tabla 2 – Cantidad de horas por actividad 54

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imagen 28 – Porcentaje de horas por actividad

55

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Imagen 29 – División de horas por actividad por mes

56

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Conclusiones El presente trabajo brinda diferentes alternativas en las áreas de análisis, diseño, planificación e implementación para lograr una plataforma de soporte ante catástrofes naturales en Uruguay y el mundo. Luego de la experiencia lograda a partir del presente trabajo, si desea realizar una plataforma de estas características, se recomienda transitar las siguientes etapas. Inicialmente, se investiga tanto sobre las diferentes tecnologías a utilizar como sobre los procedimientos que usualmente se ejecutan ante estos desastres naturales. Para llegar a la solución, es necesario estudiar las siguientes tecnologías: Java Enterprise Edition, Android SDK y Phonegap. Dado que en la actualidad no existe un software o aplicación que gestione la información sobre catástrofes naturales en Uruguay. Se destaca el desafío de investigar comportamientos de algunas aplicaciones existentes en el mundo. De esta manera es que se realiza una investigación y debate sobre los comportamientos que debería tener la plataforma a implementar. Llegando a concluir los requerimientos que debe tener la plataforma a desarrollar. La aplicación consta de una plataforma web llamada Natdis, la cual gestiona y almacena toda la información obtenida sobre las catástrofes. En esta, se encuentra un sitio backend y un sitio frontend. En el sitio backend se centraliza la administración de usuarios, administradores, rescatistas, organizaciones, personas desaparecidas y gestionar las catástrofes naturales que sean reportadas. Además de permitir a los administradores la visualización de reportes en el tiempo, sobre las donaciones, pedidos de ayuda e utilización del sitio. A su vez, este sitio brinda acceso como administrador o rescatista. Cada uno de ellos con tareas bien definidas y diferentes. Para usuarios del sitio se desarrolla el frontend de dicha plataforma, la cual brinda a clientes de la aplicación una muestra de los desastres (o catástrofes) existentes. A su vez como cliente se le brinda la opción de realizar donaciones, solicitar ayuda o denunciar alguna persona desaparecida. Rescue-me, como se llama la aplicación Android nativa desarrollada para usuarios finales, permite de forma fácil y rápida solicitar ayuda en caso de emergencia. Para los rescatistas se implementa una aplicación Phonegap hibrida, llamada Rescuer; La cual permite a los mismos, luego de logueados en la misma, ejecutar planes de emergencia. Se destaca en la solución la posibilidad del rescatista de ver en un mapa las personas que solicitan ayuda de forma inmediata. Rescuer presenta una ayuda importante en la gestión de catástrofes, 57

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

ayudando a la comunicación entre los diferentes actores, y permitiendo recabar datos de gran interés en base a los informes realizados por los rescatistas. Finalmente, en función de los múltiples casos de éxito, la gran demanda de este tipo de aplicaciones en el mercado mundial de IT y con las aplicaciones mencionadas que se han implementado, se considera que el conjunto de las mismas concluyen en una plataforma madura, amigable y como una buena alternativa a tener en cuenta dentro de las aplicaciones existentes.

Trabajo a futuro Era un objetivo inicial de este proyecto evaluar la posibilidad e implementar en la aplicación Android Rescue-me notificaciones push, que informaran al usuario sobre las catástrofes existentes en el sistema o en el país en el que se encuentra el usuario, este requerimiento quedo fuera del alcance del sistema. Por consiguiente, es de interés implementar esta funcionalidad en Rescue.me. Con respecto a la otra aplicación móvil desarrollada en PhoneGap, Rescuer, se podría utilizar este mismo mecanismo, para mantener informados a los rescatistas sobre las nuevas posibles tareas que le sean asignadas, y a su vez también, sobre los pedidos de ayuda que son realizados. Para aquellos usuarios que disponen de dispositivos móviles con sistema operativo IOS, sería muy interesante poder extender el funcionamiento para smartphones de este tipo. Continuando con las mejoras en las aplicaciones móviles, sería deseable la integración de Twitter en la aplicación Rescue-Me; este login quedo solo implementado para la web, pero si se integró en ambos casos la red social Facebok. Con respecto al sitio web, en el backend, al momento de seleccionar la ubicación de una catástrofe en el mapa, sería interesante seleccionar el área de efecto de la misma en cualquier forma geométrica utilizando los objetos Polygon de la API de Google Maps, con los cuales es posible definir el trazo del área. Sería deseable mejorar los reportes que se muestran en el backend, para eso sería deseable utilizar la API de Google Analitycs. Con respecto al frontend, sería deseable mejorar el tema de las noticias, incluyendo noticias de twitter, con algunos tweets de noticias de actualidad. Además, que permita mostrar las noticias de cualquier origen de datos, siendo esta última opción personalizada por el usuario. Por último, se podrían mejor todas las integraciones con sitios de terceros, como ser: PayPal, Facebook, Twitter, Fuentes de Noticias, entre otros. Las mismas podrían ser mejoradas con una mayor disponibilidad de tiempo el cual no contábamos para este Proyecto.

58

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Bibliografía 1- SINAE http://www.sne.gub.uy/ 2- Android SDK http://developer.android.com/sdk/index.html 3- PhoneGap http://phonegap.com/ 4- Apache Cordova http://cordova.apache.org/ 5- Onsen UI http://onsen.io/ 6- Twitter https://dev.twitter.com/oauth/overview/introduction 7- SDK facebook https://developers.facebook.com 8- GitLab https://about.gitlab.com/ 9- Eclipse https://eclipse.org/ 10- Android Studio https://eclipse.org/ 11- Jboss http://www.jboss.org/ 12- Mongodb http://www.mongodb.org/ 13- OpenShift https://www.openshift.com/ 14- Maven http://maven.apache.org/ 15- Apache Cordova http://cordova.apache.org/ 16- Junit http://junit.org/ 17- Jquey UI http://jqueryui.com/ 18- Bootstrap http://getbootstrap.com/ 19- Gson https://code.google.com/p/google-gson/ 20- Google maps https://www.google.com.uy/maps?source=tldsi&hl=es 59

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

21- Flex slider http://www.woothemes.com/flexslider/ 22- Owl Carusel http://owlgraphic.com/owlcarousel/ 23- Fckeditor http://ckeditor.com/ 24- You Tube Data Api https://developers.google.com/youtube/v3/?hl=es 25- Facebook Developers https://developers.facebook.com/ 26- Chart.js http://www.chartjs.org/

27- Facebook REST http://restfb.com/

60

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Glosario 1. LENGUAJES 1.1.

JAVASCRIPT

JavaScript (JS) es un lenguaje de programación interpretado, se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipiado y dinámico. Por más información acerca http://www.pcmag.com/encyclopedia/term/45585/javascript

1.2.

de

JavaScript:

HTML

HTML (HyperText Markup Language) es un lenguaje para la elaboración de páginas web. Por más información acerca de HTML: http://www.webopedia.com/TERM/H/HTML.html

1.3.

XML

XML (eXtensible Markup Language) es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible. Por más información acerca de XML: http://searchsoa.techtarget.com/definition/XML

1.4.

HTML5

HTML5 (HyperText Markup Language, versión 5) es la quinta revisión importante del lenguaje básico de la World Wide Web, HTML. Por más información acerca de HTML5: http://searchsoa.techtarget.com/definition/HTML5

1.5.

CSS

CSS (Cascading Style Sheets) Mientras que HTML permite definir la estructura de una página web, las hojas son las que ofrecen la posibilidad de definir las reglas y estilos de representación en diferentes dispositivos. Por más información acerca de: http://searchsoa.techtarget.com/definition/cascading-style-sheetCSS

61

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

1.6.

RUBY

Ruby es un lenguaje de programación orientado a objetos y de código abierto enfocado en la simplicidad y productividad. Por más información acerca de Ruby: https://www.ruby-lang.org/es/

1.7.

PHP

PHP es un lenguaje de programación para el desarrollo web de contenido dinámico. Forma parte del software libre publicado bajo la licencia PHP, que es incompatible con la Licencia Publica General de GNU. Por más información acerca de PHP: http://php.net/

2.

FRAMEWORKS

2.1.

JSP

JavaServer Pages (JSP) es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML, XML, entre otros tipos de documentos. Por más información acerca de JSP: http://searchsoa.techtarget.com/definition/Java-ServerPage

2.2.

SENCHA TOUCH

Sencha Touch es una interfaz de usuario (UI) de la biblioteca JavaScript, construido específicamente para el desarrollo en móviles. Está basado completamente en estándares web como HTML5, CSS3 y JavaScript. Por más información acerca de Sencha Touch: http://www.sencha.com/products/touch/

2.3.

JQUERY MOBILE

JQuery Mobile es un framework basada en HTML5 diseñado para hacer que los sitios web y aplicaciones sean accesibles desde cualquier dispositivo móvil. Por más información acerca de JQuery Mobile: http://jquerymobile.com/

62

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

2.4.

APACHE CORDOVA

Apache Cordova es un conjunto de APIs, que permiten a desarrolladores de aplicaciones móviles acceder a funciones nativas del dispositivo. Phonegap es una distribución de Apache Cordova. Por más información acerca de Apache Cordova: http://cordova.apache.org/

2.5.

Ruby on Rails

Ruby on Rails es un framework de desarrollo, de código abierto que permite optimizar y dar productividad a la aplicación. Por más información acerca de Ruby on Rails: http://rubyonrails.org/

2.6.

AJAX

Ajax es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, mejorando la interactividad, velocidad y usabilidad en las aplicaciones.

3. SISTEMAS OPERATIVOS Un sistema operativo (SO o, OS —del inglés Operating System—) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado. Por más información acerca de Sistemas Operativos: http://www.techterms.com/definition/operating_system

3.1.

LINUX

Linux es un sistema operativo. Existen muchas distribuciones de Linux, muchas de ellas son libres, no se necesita una licencia para su uso. Por más información acerca de Linux: http://www.linux.org/

3.2.

WINDOWS

Windows es un sistema operativo, es propiedad de Microsoft y de su fundador, Bill Gates. Por más información acerca de Windows: http://windows.microsoft.com/es-es/windows/home

63

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

3.3.

MAC OS X

OS X, antes llamado Mac OS X, es un sistema operativo basado en Unix, desarrollado, comercializado y vendido por Apple Inc. Por más información acerca de Mac OS X: https://www.apple.com/es/osx/

3.4.

Dos

DOS es un sistema operativo , fue creado originalmente para computadoras de la familia IBM PC, que utilizaban los procesadores Intel 8086 y 8088, de 16 bits, siendo el primer sistema operativo popular para esta plataforma.

3.5.

ANDROID

Android es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como smartphones o tablets, y también para smart watchs, televisores y automóviles. Por más información acerca de Android: http://www.android.com/

3.6.

IOS

IOS (iPhone/iPod/iPad Operating System) es un sistema operativo móvil de la empresa Apple Inc. Por más información acerca de IOS: https://www.apple.com/es/ios/

3.7.

BLACKBERRY OS

BlackBerry OS es un sistema operativo móvil de código cerrado desarrollado por RIM (Research In Motion) para los dispositivos BlackBerry. Por más información acerca de Blackberry http://us.blackberry.com/software.html?lid=us:bb:software&lpos=us:bb:software

3.8.

OS:

FIREFOX OS

Firefox OS es un sistema operativo móvil, basado en HTML5 con kernel Linux, de código abierto para varias plataformas. Por más información acerca de Firefox: https://www.mozilla.org/es-ES/firefox/os/

3.9.

WINDOWS PHONE

Windows Phone es un sistema operativo móvil desarrollado por Microsoft como sucesor de Windows Mobile. 64

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Por más información acerca de Windows Phone : http://www.windowsphone.com/en-us

3.10.

SYMBIAN

Symbian es un sistema operativo propiedad de Nokia, y que en el pasado fue producto de la alianza de varias empresas de telefonía móvil. En el 2012 el proyecto fue dado por finalizado. Por más información acerca de Symbian: http://licensing.symbian.org/

3.11.

BADA

Bada fue un sistema operativo para teléfonos móviles desarrollado por Samsung. Actualmente ha sido reemplazado por Tizen. Por más información acerca de Bada: http://developer.bada.com/apis/index.do

3.12.

WEB OS

WebOS también conocido como LG webOS, open webOS y HP webOS es un sistema operativo para televisiones inteligentes basado en Linux. Por más información acerca de WebOS: http://developer.bada.com/apis/index.do

3.13.

Debian

Debian es un sistema operativo libre, el cual contiene un conjunto de programas básicos y utilidades para funcionar en computadoras. Por más información acerca de Debian: https://www.debian.org/index.es.html

4.

4.1.

TERMINOLOGÍA ASOCIADA A CATÁSTROFES

SINAE - SISTEMA NACIONAL DE EMERGENCIA

El SINAE es un sistema público de carácter permanente cuya finalidad es la protección de las personas, los bienes de significación y el medio ambiente ante el acaecimiento eventual o real de situaciones de desastre. Por más información acerca de http://www.sne.gub.uy/index.php?option=com_content&view=article&id=135&Itemid=43

SINAE:

65

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

4.2.

CRUZ ROJA

La Cruz Roja es uno de los movimientos humanitarios y asistenciales más reconocidos del mundo y asimismo el que mayor presencia ha demostrado cada vez que la humanidad se lo demanda. Por más información acerca de la Cruz Roja : http://www.cruzroja.org/

4.3.

ONG

El término oenegé (procedente de la sigla ONG “organización no gubernamental') se refiere normalmente a organizaciones que no son ni parte del gobierno ni de alguna empresa con fines de lucro. Por lo general a cargo de ciudadanos comunes, y pueden ser financiadas por el gobierno, fundaciones o empresas.

4.4.

EDIS (EMERGENCY AND DISASTER INFORMATION SERVICE)

Es un servicio de entrega de información de emergencia y desastres operado por la Oficina de Servicios de Emergencia del Estado de California.

4.5.

(HUNGARIAN INFOCOMMUNICATIONS) RSOE

NATIONAL ASSOCIATION OF RADIO DISTRESS-SIGNALLING AND

Es una organización que opera de Emergency and Disaster Information Service (EDIS) en el marco de su propio sitio web que tiene el objetivo de monitorear y documentar todos los eventos en la Tierra que pueden causar desastres o emergencias. Por más información acerca de RSOE: http://hisz.rsoe.hu/alertmap/index2.php

4.6.

ORGANIZACIÓN NACIONES UNIDAS

La Organización de las Naciones Unidas (ONU) es la mayor organización internacional existente. Se define como una asociación de gobierno global que facilita la cooperación en asuntos como el Derecho internacional, la paz y seguridad internacional, el desarrollo económico y social, los asuntos humanitarios y los derechos humanos. Por más información acerca de la ONU: http://www.un.org/es/

4.7.

UNGRID (UNIDAD NACIONAL PARA LA GESTIÓN DE RIESGO DE DESASTRES)

Es una unidad que dirige, orienta y coordina la Gestión del Riesgo de Desastres en Colombia, fortaleciendo las capacidades de las entidades públicas, privadas, comunitarias y de la sociedad en general, con el propósito explícito de contribuir al mejoramiento de la calidad de vida de las personas y al desarrollo sostenible 66

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Por más información acerca de UNGRID: http://portal.gestiondelriesgo.gov.co

5.

FUENTES DE DATOS

5.1.

YOUTUBE

Es un sitio web en el cual los usuarios pueden subir y compartir vídeos. Por más información acerca de YouTube: https://www.youtube.com/

5.2.

CNN

CNN en Español es un canal de televisión de noticias operado por Time Warner, dirigido a Latinoamérica-Caribe y al público hablante del español en Estados Unidos. Por más información acerca de CNN: http://cnnespanol.cnn.com/

5.3.

BBC

La British Broadcasting Corporation (BBC) es el servicio público de radio, televisión e Internet del Reino Unido. Por más información acerca de BBC: http://www.bbc.co.uk/mundo

5.4.

WIKIPEDIA

Wikipedia es una enciclopedia libre, políglota y editada colaborativa-mente. Es administrada por la Fundación Wikimedia, una organización sin ánimo de lucro. Por más información: http://es.wikipedia.org/wiki/Wikipedia

5.5.

RSS

RSS son las siglas de Really Simple Syndication, un formato XML para indicar o compartir contenido en la web. Se utiliza para difundir información actualizada frecuentemente a usuarios que se han suscrito a la fuente de contenidos. Por más información acerca de RSS: http://www.rss.nom.es/

6.

REDES SOCIALES

Una red social es una forma de representar una estructura social, asignándole un símbolo, si dos elementos del conjunto de actores (tales como individuos u organizaciones) están

67

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

relacionados de acuerdo a algún criterio (relación profesional, amistad, parentesco, entre otros.) entonces se construye una línea que conecta los nodos que representan a dichos elementos.

6.1.

TWITTER

Twitter es un servicio de microblogging, desde que Jack Dorsey lo creó, y lo lanzó, la red ha ganado popularidad mundialmente y se estima que tiene más de 500 millones de usuarios. Por más información acerca de Twitter: https://twitter.com/

6.2.

FACEBOOK

Facebook es una red social creado por Mark Zuckerberg. Originalmente era un sitio para estudiantes de la Universidad de Harvard, pero se abrió a cualquier persona con una cuenta de correo electrónico. Facebook cuenta con más de 900 millones de miembros. Por más información acerca de Facebook: https://es-la.facebook.com/

7.

OTROS

7.1.

IDE

Un IDE (sigla en inglés de Integrated Development Environment), es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, que consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI).

7.2.

ADT (ANDROID DEVELPOMENT TOOLS)

Android Development Tools (ADT) es un plugin para el IDE Eclipse que está diseñado para construir un poderoso e integrado entorno de desarrollo para la construcción de aplicaciones de Android. Por más información acerca de ADT: http://developer.android.com/tools/sdk/eclipse-adt.html

7.3.

PAYPAL

68

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

PayPal es una empresa independiente y perteneciente al sector del comercio electrónico por Internet que permite la transferencia de dinero entre usuarios que tengan correo electrónico. Por más información acerca de PayPal: https://www.paypal.com/uy/webapps/mpp/home

7.4.

OPEN HANDSET ALLIANCE

La Open Handset Alliance (OHA) es una alianza comercial de 84 compañías que se dedica a desarrollar estándares abiertos para dispositivos móviles. Algunos de sus miembros son Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia y Wind River Systems. Por más información acerca de Open Handset Alliance: http://www.openhandsetalliance.com/

7.5.

API

Interfaz de programación de aplicaciones o API es el conjunto de funciones y procedimientos que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.

7.6.

NITOBI

Nitobi es la empresa que desarrollo Phonegap, un framework de código abierto que proporciona a los desarrolladores web una API JavaScript que permite el acceso a funciones nativas de los dispositivos móviles. Por más información acerca de Nitobi: http://www.crunchbase.com/organization/nitobi-software

7.7.

ADOBE CREATIVE CLOUD

Adobe Creative Cloud, es un servicio de Adobe Systems que brinda a los usuarios acceso a software de diseño gráfico, edición de video, diseño web y servicios en la nube. Por más información acerca http://www.adobe.com/la/creativecloud.html

7.8.

de

Adobe

Creative

Cloud:

PUSH

Tecnología Push, o servidor push, describe un estilo de comunicaciones sobre Internet donde la petición de una transacción se origina en el servidor. Por el contrario esta la tecnología Pull, donde la petición es originada en el cliente.

69

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

7.9

CLOUD COMPUTING

La computación en la nube, conocido también como servicios en la nube, informática en la nube, nube de cómputo o nube de conceptos, (del inglés cloud computing), es un paradigma que permite ofrecer servicios de computación a través de Internet.

7.10

OPENSHIFT

Es un producto de computación en la nube de plataforma como servicio de Red Hat. Este software funciona como un servicio que es de código abierto bajo el nombre de "OpenShift Origin", y está disponible en GitHub. Por más información acerca de OpenShift: https://www.openshift.com/

7.11 AMAZON WEB SERVICES Amazon Web Services (AWS) es una colección de servicios de computación en la nube que en conjunto forman una plataforma de computación en la nube, ofrecidas a través de Internet por Amazon.com. Por más información acerca de AWS: http://aws.amazon.com/es/

7.12

AMAZON EC2

Amazon Elastic Cloud 2 es una parte central de la plataforma de cómputo en la nube de la empresa Amazon.com denominada AWS. EC2 permite a los usuarios rentar computadoras virtuales en los cuales pueden correr sus propias aplicaciones. Por más información acerca de AWS: http://aws.amazon.com/es/ec2/

7.13

NATDIS

NatDis es el nombre que se seleccionó para la plataforma que debemos desarrollar. Proviene de Natural Disasters.

7.14

BACKEND

Sitio web de acceso restringido para la administración del sistema NatDis.

7.15

FRONTEND

70

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Sitio web de acceso público para cualquier persona que quiera ingresar al Sistema NatDis.

7.16

INTERFAZ

Se utiliza para nombrar a la conexión física y funcional entre dos sistemas o dispositivos de cualquier tipo dando una comunicación entre distintos niveles. Su plural es interfaces.

7.17

JSON

JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML. Por más información acerca de JSON: http://json.org/json-es.html

7.18 BROWSER Es un software que permite el acceso a Internet, interpretando la información de archivos y sitios web para que éstos puedan ser leídos.

7.19

RED HAT

Es la compañía responsable de la creación y mantenimiento de una distribución del sistema operativo GNU/Linux que lleva el mismo nombre: Red Hat Enterprise Linux, y de otra más, Fedora; en la actualidad también mantiene CentOS. Por más información acerca de red HAT: http://www.redhat.com/

7.20

APACHE TOMCAT

Apache Tomcat es una implementación de software de código abierto de las tecnologías Java Servlet y JavaServer Pages. Las especificaciones Java Servlet y JavaServer Pages se desarrollan bajo la Java Community Process. Por más información acerca de apache tomcat: http://tomcat.apache.org/

71

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

7.21

MVC

El modelo–vista–controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario.

7.22

QUEMU

QEMU es un emulador de procesadores basado en la traducción dinámica de binarios (conversión del código binario de la arquitectura fuente en código entendible por la arquitectura huésped). QEMU también tiene capacidades de virtualización dentro de un sistema operativo, ya sea GNU/Linux, Windows Por más información acerca de QUEMU: http://www.qemu.org/.

72

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Anexos

73

UNIVERSIDAD DE LA REPUBLICA – FACULTAD DE INGENIERIA – UNIVERSIDAD DEL TRABAJO DEL URUGUAY

Contenido de Anexos [A] Entrevista SINAE [B] Investigación y evaluación de aplicaciones para el desarrollo del Proyecto. [C] Investigación tecnologías web [D] Investigación tecnologías móviles [E] Development Environment Setup Web [F] Development Environment Mobile [G] Alcance del sistema [H] Especificación de requerimientos de software para [Sistema, subsistema o funcionalidad] [I] Modelo casos de usos [J] Modelo de dominio [K] Modelo de datos [L] Descripción de la arquitectura [M] Modelo de diseño [N] Pautas para la interfaz de usuario [P] Actas de reuniones [P1] Acta de reunión de equipo 06/09/2014 [P2] Acta de reunión de equipo 13/09/2014 [P3] Acta de reunión de equipo 07/10/2014 [P4] Acta de reunión de equipo 08/10/2014 [P5] Acta de reunión de equipo 12/10/2014 [P6] Acta de reunión de equipo 21/10/2014 [P7] Acta de reunión de equipo 25/10/2014 [P8] Acta de reunión de equipo 22/11/2014 [Q] Validación con el cliente

74

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.