Tesis de Grado

June 14, 2017 | Autor: Fabio Guachalla | Categoria: Geolocation, Web Services and SOA, RESTful web services
Share Embed


Descrição do Produto

UNIVERSIDAD MAYOR DE SAN ANDRÉS FACULTAD DE CIENCIAS PURAS Y NATURALES CARRERA DE INFORMATICA  

   

TESIS DE GRADO    “PLATAFORMA DE GEOLOCALIZACIÓN DE PERSONAS  MEDIANTE DISPOSITIVO MÓVIL”    PARA OPTAR AL TÍTULO DE LICENCIATURA EN INFORMATICA  MENCION: INGENIERIA DE SISTEMAS INFORMATICOS 

            POSTULANTE: ​ FABIO RODOLFO GUACHALLA BLANCO   TUTOR METODOLOGICO: ​ M. Sc. ALDO RAMIRO VALDEZ ALVARADO            ASESOR: ​ LIC. MARCELO GERMAN ARUQUIPA CHAMBI      LA PAZ – BOLIVIA    2015       

    DEDICATORIA  Esta  tesis  se  la  dedico  a  mis  padres  quienes  me  han  apoyado  para poder llegar a esta instancia de  mis  estudios,  ya  que  ellos  siempre  han  estado  presentes 

para 

psicológicamente.  

apoyarme 

moralmente 



                            AGRADECIMIENTO  Primeramente  doy  gracias  a  Dios  por  permitirme  llegar a ser un profesional, gracias  a mi familia quienes me apoyan y soportan en  cada  momento  de  mi  vida,  gracias  a  cada  Docente  que  fue  parte  del  proceso  de  mi  formación  académica.  gracias  a  mis  amigos  que  me  ayudaron  a  superar  los  obstáculos  que se presentaron. 

CONTENIDO  RESUMEN  SUMMARY  CAPÍTULO I 



1. MARCO INTRODUCTORIO 



1.1. INTRODUCCIÓN 



1.2. ANTECEDENTES 



1.3. PLANTEAMIENTO DEL PROBLEMA 



1.3.1. PROBLEMA CENTRAL 



1.3.2. PROBLEMAS SECUNDARIOS 



1.4. DEFINICIÓN DE OBJETIVOS 



1.4.1. OBJETIVO GENERAL 



1.4.2. OBJETIVOS ESPECÍFICOS 



1.5. HIPÓTESIS 



1.5.1. OPERACIONALIZACIÓN DE VARIABLES 



1.6. JUSTIFICACIÓN 



1.6.1. JUSTIFICACIÓN ECONÓMICA 



1.6.2. JUSTIFICACIÓN SOCIAL 



1.6.3. JUSTIFICACIÓN CIENTÍFICA 



1.7. ALCANCES Y LÍMITES 



1.7.1. ALCANCES 



1.7.2. LÍMITES 



1.8. APORTES 



1.8.1. PRÁCTICO 



1.8.2. TEÓRICO 



1.9. METODOLOGÍA 



1.9.1. TIPO DE INVESTIGACIÓN 



CAPÍTULO II 

           12 

2. MARCO TEÓRICO 

 

           13 

2.1. INTRODUCCIÓN 

 

           13 

2.2. INGENIERÍA WEB

           13 

2.2.1. ARQUITECTURA SOA 

 

           13 

2.3. CONSUMO DE SERVICIOS 

 

           15 

2.3.1. SERVICIOS WEB 

 

           16 

2.4. REST 

 

2.5. INGENIERÍA MÓVIL 

 

           16             18 

2.5.1.. METODOLOGÍA DE DESARROLLO MOBILE­D  

           18 

2.5.2. ELEMENTOS 

           21 

 

2.6. GEOLOCALIZACIÓN  2.6.1. API GOOGLE MAPS 

 

           22 

 

           22 

2.7. MODELO VISTA CONTROLADOR (MVC) 

 

           23 

2.7.1. DESCRIPCIÓN DEL PATRÓN 

 

           24 

2.7.2. USO EN APLICACIONES WEB 

 

           26 

2.8. PHONEGAP 

 

2.9. EMULADOR RIPPLE  2.10. CAPACIDADES DE RIPPLE 

 

           27 

                       29 

 

           29 

CAPÍTULO III 

           31 

3. MARCO APLICATIVO 

 

           32 

3.1. INTRODUCCIÓN 

 

           32 

3.2. EXPLORACIÓN Y CATEGORIZACIÓN 

 

           32 

3.2.1. DEFINICIÓN DE LOS GRUPOS DE INTERÉS 

 

           33 

3.2.2. ACTORES 

 

           33 

3.2.3. ROLES Y TAREAS 

 

           33 

3.2.4. COLECCIÓN DE REQUERIMIENTOS 

 

           34 

3.2.5. CATEGORIZACIÓN DE REQUERIMIENTOS 

 

           34 

3.2.6. ARQUITECTURA PROTOTIPO 

 

           35 

3.3. INICIALIZACIÓN 

 

           35 

3.3.1. ENTORNO DE TRABAJO

 

           36 

3.3.2. LISTA DE FUNCIONALIDADES 

 

           36 

3.3.3. PLANIFICACIÓN DE FASES 

 

           37 

3.3.4. ITERACIONES 

 

           37 

3.3.5. PLANIFICACIÓN DEL SERVICIO WEB RESTful   

           39 

3.3.6. DISEÑO E IMPLEMENTACIÓN DE LA BASE DE DATOS 

           40 

3.3.7. DISEÑO DE LA INTERFAZ DEL ADMINISTRADOR 

 

           41 

3.3.8. DISEÑO DE LA INTERFAZ DEL USUARIO 

 

           43 

3.4. PRODUCTIZACIÓN E IMPLEMENTACIÓN DE WEB SERVICE 

           41 

3.4.1. IMPLEMENTACIÓN DE DE LOS WEB SERVICES 

           44 

 

3.4.1.1 PROCESAR LAS RUTAS DE LOS RECURSOS   

           45 

3.4.1.2. MANEJADORES DE SALIDA EN LA VISTA 

           46 

 

3.4.1.3. MANEJO DE EXCEPCIONES EN LA API  3.4.1.4. MODELO DE DATOS DE USUARIOS

 

3.4.1.5. MODELO DE DATOS PARA INTEGRANTES

 

           47 

 

           49 

 

           54 

3.4.2. IMPLEMENTACIÓN APLICACIÓN MÓVIL 

 

           57 

3.4.2.1. OBTENER LA UBICACIÓN ACTUAL DEL USUARIO

           58 

3.4.3. WORKSHOP DE POST ITERACIÓN

 

           60 

3.4.3.1. TEST DE ACEPTACIÓN

 

           61 

3.5. FASE DE ESTABILIZACIÓN 

 

           62 

3.5.1. WORKSHOP DE POST ITERACIÓN 

 

           62 

3.5.2. TEST DE ACEPTACIÓN

 

           63 

3.6. FASE DE PRUEBAS 

 

           63 

3.6.1. PLAN DE PRUEBAS 

 

           64 

3.6.2. PRUEBAS DE ACEPTACIÓN POR ITERACIÓN

 

           64 

CAPÍTULO IV

           68 

4. PRUEBA DE HIPÓTESIS

 

           69 

4.1. INTRODUCCIÓN

 

           69 

4.2. EVALUACIÓN DE LOS CASOS DE PRUEBA

 

           69 

4.3. PRUEBA DE HIPÓTESIS

 

           69 

4.3.1. DEFINICIÓN DE LA HIPÓTESIS 

 

           70 

4.3.2. EVALUACIÓN DE RESULTADOS

 

           70 

4.3.3. DETERMINACIÓN DE LA REGIÓN CRÍTICA

 

           71 

4.3.4. CÁLCULO ESTADÍSTICO DE LA PRUEBA

 

           72 

4.3.5. TOMA DECISIÓN

 

           72 

CAPÍTULO V

           74 

5. CONCLUSIONES Y RECOMENDACIONES

 

           75 

5.1. CONCLUSIONES

 

           75 

5.2. MEJORAR TRABAJO

 

           76 

BIBLIOGRAFÍA 

           77 

ANEXOS

           79 

ANEXO A

           80 

TABLA DE DISTRIBUCIÓN NORMAL

           80 

DOCUMENTACIÓN

           81 

             

ÍNDICE DE FIGURAS    FIGURA 2.1. COMPONENTES DE LA ARQUITECTURA SOA 

15 

FIGURA 2.2. CICLO DE DESARROLLO DE MOBILE­D 

19 

FIGURA 2.3. DIAGRAMA MVC

24 

FIGURA 2.4. DESARROLLO DE APLICACIONES BASADOS   EN PHONEGAP 

27 

FIGURA 2.5. PHONEGAP BUILD 

28 

FIGURA 3.1. ARQUITECTURA DEL PROTOTIPO 

35 

FIGURA 3.2. ESQUEMA DE DESARROLLO DEL SISTEMA 

37 

FIGURA 3.3. MODELO RELACIONAL 

40 

FIGURA 3.4. INICIO DE SESIÓN 

41 

FIGURA 3.5. CRUD DE USUARIOS 

41 

FIGURA 3.6. UBICACIÓN DE USUARIOS 

42 

FIGURA 3.7. RASTREO DE UN USUARIO 

42 

FIGURA 3.8. REGISTRO EN LA APLICACIÓN 

43 

FIGURA 3.9. INTERFAZ MANEJO DE USUARIO 

44 

FIGURA 3.10. ESTRUCTURA DEL INDEX.PHP 

46 

FIGURA 3.11. FRAGMENTO DE EXCEPCIÓN INDEX.PHP 

48 

FIGURA 3.12. CLASE USUARIO 

50 

FIGURA 3.13. DIAGRAMA DE PROCESAMIENTO 

51 

FIGURA 3.14. INVOCACIÓN DE REGISTRO/LOGIN 

52 

FIGURA 4.1. REGIÓN CRÍTICA PARA LA HIPÓTESIS 

71 

FIGURA 4.2. DISTRIBUCIÓN DE Z PARA LA TOMA DE DECISIÓN 

72 

     

ÍNDICE DE TABLAS    TABLA 3.1. ROLES Y TAREAS DE LOS USUARIOS 

33 

TABLA 3.2. LISTA DE TAREAS 

36 

TABLA 3.3. DESCRIPCIÓN DE LAS ITERACIONES 

37 

TABLA 3.4. ESTIMACIÓN DE ESFUERZOS DE PROCESOS   PRINCIPALES 

39 

TABLA 3.5. RECURSOS DE REGISTROS Y PROCESO DE   LOGIN

 

49 

TABLA 3.6. OPERACIONES SOBRE LOS RECURSOS 

55 

TABLA 3.7. TEST DE ACEPTACIÓN DE PRODUCCIÓN 

61 

TABLA 3.8. TEST DE ACEPTACIÓN DE ESTABILIZACIÓN 

63 

TABLA 3.9. RESULTADOS ITERACIÓN 1 

65 

TABLA 3.10. RESULTADOS ITERACIÓN 2 

65 

TABLA 3.11. RESULTADOS ITERACIÓN 3 

66 

TABLA 3.12. RESULTADOS ITERACIÓN 4 

66 

TABLA 3.13. RESULTADOS ITERACIÓN 5 

67 

TABLA 3.14. RESUMEN DE LOS RESULTADOS DE ITERACIONES 

67 

TABLA 4.1. RESULTADO DE TABLA DE LA FUNCIÓN DE   DISTRIBUCIÓN NORMAL     

 

71 

RESUMEN   Las  nuevas  tecnologías  y  la  sociedad  de  la  información  están  creando  nuevas  vías  de  comunicación  social,  en  nuestro  medio  se  hace  evidente  el  crecimiento  del  uso  de  terminales móviles facilitando el acceso a Internet, produciendo sociedades inteligentes.    El  presente  trabajo  tiene  como  objetivo  transformar  esa  necesidad  emergente  en  un  marco  teórico  y  aplicativo  que  convergen  como  una  base  para  el  desarrollo  de  un  sistema  cuyo  proceso  principal  es  la  geolocalización  de  personas  por  medio  del  GPS  de  su  dispositivo  móvil.    La  construcción  de  esta  aplicación  fue  posible  con  el  uso  de  herramientas  tales  como:  PhoneGap,  para  la  creación  de  la  interface,  SOA  para  el  modelado  de  los servicios usando  RESTful  para  la  integración  de  la  aplicación  con  el  SOA  de  ésta  a  partir  de  marcadores  propios de la librería.    Los  resultados  obtenidos a partir de las pruebas de la aceptación, nos indican que es posible  la ampliación de los Web Service, y para varias aplicaciones con la misma ideología.    Palabras clave: ​ Web Service, RESTful, SOA, geolocalización, GPS     

 

SUMMARY  New  technologies  and  the  information  society  are  creating  new  channels  of  social  communication,  in  our  growth  in  the  use  of  mobile  terminals  is  evident  facilitating  access  to Internet, producing intelligent societies.    This  paper aims to transform the emerging need for a theoretical and applicative framework  converging  as  a  basis  for  the  development  of  a  system  whose  primary  process  is  the  geolocation of people through the GPS of your mobile device.    The  construction  of  this  implementation  was  possible  with  the  use  of  tools  such  as  PhoneGap,  for  creating  the  interface,  for  SOA  modeling  using  RESTful  services  for  integrating the SOA application thereof from own markers the library.    The  results  from  the  acceptance  tests,  we  show  that  it  is  possible  to  expand  the  Web  Service, and for multiple applications with the same ideology.    Keywords: ​ Web Service, RESTful SOA, geolocation, GPS   

 

                  CAPÍTULO I          1 

1. MARCO INTRODUCTORIO    1.1. INTRODUCCIÓN  Las  nuevas  tecnologías  y  la  sociedad  de  la  información  están  creando  nuevas  vías  de  comunicación  social,  en  nuestro  medio  se  hace  evidente  el  crecimiento  del  uso  de  terminales móviles facilitando el acceso a Internet, produciendo sociedades inteligentes.    En  la  actualidad  la  geolocalización  o  georreferenciación,  que  es utilizado como un proceso  en  el  desarrollo  de  Sistemas  de  Información  Geográfica  (SIG),  se  ha  convertido  en  una  poderosa  herramienta  para  obtener  ubicaciones  según  su  latitud  y  longitud.  Tal  utilidad  puede  ser  utilizada  para  obtener  datos  sobre  la  ubicación  de  personas  por  medio  del  GPS1  de su dispositivo móvil.     Uno  de  los  servicios  que  causó  un  salto  cualitativo  en  cuanto  a  georreferenciación  es  Google  Earth,  ya  que  se  ha  democratizado  el  uso  de  información  georreferenciada,  puesto  que puede ser utilizado sobre todo los contenidos de tipo social presentes en la actualidad.    Aún  en  la  actualidad  algunos  de  estos  servicios  son  poco  exactos  al  momento  de  georreferenciar  una  ubicación,  además  de  que  son  de  difícil  uso.  Google  Maps  como  referencia  ha  mostrado  un  registro  moroso  de  sitios  y  lugares,  además  de  inexactitud  de  ubicaciones.    El  presente  trabajo  tiene  como  objetivo  transformar  esa  necesidad  emergente  en  un  marco  teórico  y  aplicativo  que  convergen  como  una  base  para  el  desarrollo  de  un  sistema  cuyo 

1

 ​ GPS, Global Position System o Sistema de Posicionamiento Global q​ ue permite determinar en todo el mundo la posición de un objeto  (una persona, un vehículo, un dispositivo móvil u otros)   

      2 

proceso  principal  es  la  geolocalización2  de  personas  por  medio  del  GPS  de  su  dispositivo  móvil.    1.2. ANTECEDENTES  El  uso  de  los  teléfonos  inteligentes,  avanza  exponencialmente  en  nuestro  país.  De  acuerdo  con  datos  de  la  Autoridad  de  Regulación  y  Fiscalización  de  Telecomunicaciones  y  Transportes  (ATT),  el  acceso  a  internet  a  través  de terminales móviles tuvo un crecimiento  de 133%.    El  director  ejecutivo  de  la  ATT,  informó  que  la  penetración  de  este  servicio  llega  a  10,7  millones  de  habitantes.  De  los  cuales  4,9  millones  de  conexiones  a  internet  que  existen  en  el  país,  4,8  millones  se  realizan  a  través  de  dispositivos  móviles  (2G,  3G  y  4G,  dongles  y  terminales),  169.126  a  usuarios  con  tecnologías  alámbricas  y  11.061  a  usuarios  inalámbricos. (Vasquez, 2015).    Desde  la aparición del Canadian Geographical Information System (CGIS) en 1962 hasta la  actualidad  se  han  ido  implementando  numerosas  aplicaciones  de  los  SIG  en  los  más  variados  ámbitos,  por  lo  que  ha  dejado  de  ser  un  campo  de geógrafos y planificadores y se  ha  convertido  en  una  herramienta  cuya  facilidad  de  uso  ha  extendido y democratizado esta  tarea fuera del ámbito técnico existente hasta ahora (Chang, 2010).    El  área  en  cuanto  a  servicios  referentes  a  georreferenciación  ha  ido  en  crecimiento  con  constantes  avances  para  mejorar los tiempos de respuesta al usuario. Una de estas empresas  es  Foursquare  que  es  una  red  social  con  más  de  2.7  millones  de  usuarios,  una  aplicación  multiplataforma excepto la aplicación nativa para iPad y cuenta con su propia API3.  2

 ​ E s un término nuevo surgido con el avance tecnológico que da a entender por, ubicación satelital de un objeto o persona que transmita  coordenadas de su posicionamiento.  3

 ​ Application Programming Interface es el conjunto de funciones y procedimientos. 

      3 

Google  Maps  de  la  empresa  Google,  es  el  SIG  que  más  usuarios  tiene,  ya  que  cuenta  con  información  mundial  de  fácil  acceso  por  su  documentación  y  servicio  de  soporte,  pero  cuenta  con  imprecisiones  y  retraso  dependiendo  al  ancho  de  banda  y  al  hardware  del  ordenador.    Google  Maps  tiene  documentación  aún  en  fase  de  desarrollo,  es  por  eso  que  varias  empresas  van  colaborando  al  proyecto  Open  Street  Maps  como  por  ejemplo:  Apple,  Microsoft  (Mapas  Bing),  Yahoo  (Mapas  Yahoo),  Foursquare  que  recientemente cambió de  Google  Maps  a  Open  Street  Maps  en  su  versión  de  escritorio,  ya  que  su  versión  para  móviles aún sigue usando Google Maps. (Duclos, 2010)    Del  mismo  modo,  la  masificación  y  evolución  constante  de  la  georreferenciación  se  ha  visto  impulsada  por  el  uso  mashups  (aplicaciones  web  híbridas)  en  sitios  Web  2.0,  permitiendo  la  localización  de  contenidos  digitales  (vídeo,  noticias,  modelados  3D)  en  cartografía  digital,  dentro  de  lo  que  se  ha  venido  a  llamar  la  Información  Geográfica  Voluntaria.    Tesis/Proyectos Nacionales  “​ Herramienta  Metodológica  para  el  Desarrollo de Aplicaciones Web Móvil​ ” de Salgueiro  (2012)  propone  una  herramienta  metodológica  para  el  desarrollo  de  software  web  móvil,  que  permita  obtener  software  de  altas  prestaciones,  calidad  y  evitar  que  provocan  insatisfacción  en  los  usuarios  finales,  que  es  la  causa  fundamental  para  que  proyectos  con  buenos  criterios  y  perspectivas  a  futuro  no  fracasen  y  sean  desechadas  incluso  antes  de  su  implementación y uso.    “Sistema  de  Ubicación  o  Localización  Móvil  Basado  en  Dispositivos  Móviles”  de  Guarachi  (2012)  realiza  el  desarrollo  de  un  sistema  de  ubicación,  capaz  de  explotar  los        4 

servicios  de  localización  en  combinación  con  las  tecnologías  usadas  para  el  desarrollo  de  aplicaciones móviles, tecnologías y servicios web.    “Software  Móvil  de  Geolocalización  para  la  Banca  en  la  Ciudad  de  La  Paz”  ​ de  Pérez  (2014)  ofrece  un  Sistema  cuyo  proceso  principal  se  basa  en la geolocalización de servicios  que  nos  brindan  las  entidades  bancarias,  que  permita  al  usuario  ubicar  a  la  sucursal  de  la  entidad requerida más próxima a su ubicación trazando una ruta.    Tesis/Proyectos Internacionales  “Plataforma  de  Geolocalización  de  Centros  de  Salud  con  Tecnología  Móvil  Implementando  el  Protocolo  de  Comunicación  HL7”  de  Soto  (2009)  presenta  una  plataforma  de  geolocalización  encargada  de  localizar  centros  de  salud.  La  plataforma  incluye:  el  protocolo de comunicaciones Health Level Seven (HL7), tecnología de telefonía  móvil  y  sistemas  de  posicionamiento  global  (GPS).  Se  construyó  una  Arquitectura  Orientada  a  Servicios  (SOA)  estructurada  en  tres  capas:  presentación, lógica de negocios y  repositorio de data geográfica.     1.3. PLANTEAMIENTO DEL PROBLEMA  Mediante  el  análisis  y  la  respectiva  observación  de  antecedentes,  y  la  importancia  de  la  seguridad  ciudadana,  se  determinó  la  necesidad  de  implementar  una  plataforma  de  geolocalización que permita saber la ubicación de un grupo de personas.     1.3.1. PROBLEMA CENTRAL  Los  datos  sobre  las  ubicaciones  de  un  grupo  personas  como  ser  una  familia,  son  desconocidas,  en  lo  cual  hay  bajo  control  familiar  ya  que  en  nuestro  medio  actualmente  existe secuestros, asaltos y otros, lo cual es preocupante para los padres de familia.          5 

Planteándose así un problema central de la investigación que es:  ¿Cómo obtener información confiable sobre la ubicación de una persona?    1.3.2. PROBLEMAS SECUNDARIOS  ● Bajo  Control  Familiar,  ​ actualmente  existen  pocas  aplicaciones  que  nos  ayudan  a  tener información de nuestra familia. Y estas aplicaciones son de paga.  ● Desconocimiento  de  Lugares​ ,  las  aplicaciones  que  nos  ofrecen  el  reconocimiento  de  lugares  están  en  desarrollo  para  países  de  primer  mundo,  por  lo tanto en nuestro  país tiene poco acceso a este servicio.  ● Trayectoria  seguida,  ​ la  trayectoria  que  sigue  el  usuario  muchas  veces  el  dispositivo  móvil  no  es  almacenado,  o  en  otros  casos  solo  se  activa  cuando  el  dispositivo móvil se encuentra denunciado como robado.    1.4. DEFINICIÓN DE OBJETIVOS  1.4.1. OBJETIVO GENERAL  Desarrollar  una  plataforma  de  geolocalización  que  brinde  información  confiable  de  la  ubicación de una persona.    1.4.2.OBJETIVOS ESPECÍFICOS  ● Automatizar la ubicación de una persona específica.  ● Desarrollar de una plataforma web orientado a servicios.  ● Integrar a la aplicación con Google Maps y Open Street Maps.  ● Mostrar la trayectoria de una persona.  ● Implementar servicio de alerta cuando se encuentre en una zona peligrosa.   

      6 

1.5. HIPÓTESIS   H  :  “La  plataforma  de  geolocalización  como  proceso  de  un  sistema  de  información  geográfica  permite  recibir  información  con  un  90%  de  confiabilidad  sobre  la  ubicación  de  una persona mediante el GPS de su dispositivo móvil”.    1.5.1. OPERACIONALIZACIÓN DE VARIABLES  VARIABLE INDEPENDIENTE  Información  del  90%  confiable  sobre  ubicaciones  de  las  personas  dentro  de  un  mapa mediante el GPS.  VARIABLE DEPENDIENTE  Mediante  el  uso  de  un  dispositivo  móvil  o  web  se  podrá  ubicar  la  posición  de  la  persona seleccionada  VARIABLE MODERANTE  La geolocalización como proceso de un sistema de información geográfica.    1.6. JUSTIFICACIÓN  1.6.1. JUSTIFICACIÓN ECONÓMICA  El  presente  trabajo  se  justifica  económicamente  ya  que  el  costo  económico  en  cuanto  al  sistema  se  refiere  solamente  al  mantenimiento,  puesto  que  las  herramientas  utilizadas  para  el  desarrollo  e  implementación de la plataforma es Open Source4 y basado en un modelo de  Arquitectura Orientada a Servicios (SOA).    1.6.2. JUSTIFICACIÓN SOCIAL  La  necesidad  de  implementar  esta  plataforma  se  centra  en  crear  un  servicio  para  la  seguridad  ciudadana  por  parte  del  usuario  al  momento  de  buscar  a  una  persona  dando  la  ubicación actual, teniendo a la mano la información necesaria  4

 ​ E s la expresión con la que se conoce al ​ software​   o hardware distribuido y desarrollado libremente. 

      7 

1.6.3. JUSTIFICACIÓN CIENTÍFICA  La  presente  investigación  se desarrolló a partir del framework de Phonegap JS, que permite  desarrollar  aplicaciones  para  diferentes  plataformas  móviles  (Android,  IOs,  Windows  Phone  y  otros),  basándose  en  tecnologías  web  (HTML,  CSS,  JavaScript),  con  el  fin  de  adaptar  la  compatibilidad  con  la  mayor  cantidad  de  navegadores  web  y  dispositivos  móviles.    1.7. ALCANCES Y LÍMITES  1.7.1. ALCANCES  ● La plataforma ofrece servicios de geolocalización.  ● La  plataforma  de  geolocalización  se  desarrollará  para  dispositivos  móviles  y  web,  con pruebas en el sistema operativo Android y Navegador Chrome.  ● La  interacción  de  la  plataforma  con los mapas de Google Maps y Open Street Maps  brindará  información  confiable  y  actualizada  desde  cualquier  dispositivo  móvil  y  web.  ● Mostrar la ubicación de las personas en tiempo real.  ● Notificar a la familia si se encuentra en algún peligro.    1.7.2. LÍMITES  ● Los usuarios y las personas a ser ubicadas tendrán que tener acceso a Internet.  ● Debido  a  que  la  información  a  ser  manejada  es  privado, no tendrá conexión a redes  sociales.  ● La plataforma ofrece servicios de geolocalización para dispositivos móviles   

      8 

1.8. APORTES  1.8.1. PRÁCTICO  La  plataforma  será  un  gran  aporte  a  la  sociedad,  debido  a  que  es  una  herramienta  para  la  seguridad ciudadana y a reducir peligros que aterra a nuestra ciudad.    Creación  de  servicio  de  geolocalización  usando  método  SOA,  el  cual  es  ​ flexible  que  permite la reutilización de las tecnologías existentes.    1.8.2. TEÓRICO   La  presente  investigación  permitirá  ver  de  otro  modo  la  comunicación  y  de  seguridad  ciudadana,  viendo  a  los  antecedentes  para  poder  explotar  las  tecnologías  de  otras  formas  más  innovadoras  en  el  futuro.  Esto  debido  a  los  trabajos  realizados  con  anterioridad  con  estas tecnologías aún se usan de manera incorrecta.    1.9. METODOLOGÍA  1.9.1. TIPO DE INVESTIGACIÓN  La  metodología  que  se  utilizara  para  la  presente  tesis  es  el  método  científico  esto debido a  las etapas que esta presenta y que son necesarias como:   ● Observación  ● Formulación de hipótesis  ● Experimentación   ● Emisión de conclusiones    Se  procederá  a  asignar  pasos  bien  especificados  sobre  la  realización  de  cada  uno  de  los  procesos,  documentando  cada  avance  y  cada  proceso  para  que  forme  parte  del manual que  se  presentará al final del proceso e implementación del software. Es por ello que se requiere  hacer un tipo de estudio aplicado y tecnológico basado en pruebas del objeto de estudio.        9 

MÉTODO APLICATIVO  Las  características requeridas para el desarrollo de la plataforma  se adaptan a metodologías  ágiles,  aunque  la  metodología  elegida  es  Mobile­D  para  la  parte  móvil,  que  viene  siendo  una  mezcla  de  muchas  técnicas,  que  han  apoyado  en  otras  soluciones.Se  trata  de  método  basado  en  soluciones  conocidas  y  consolidadas:  Extreme  Programming  (XP),  Crystal  Methodologies  y  Rational  Unified  Process  (RUP),  XP  para  las  prácticas  de  desarrollo,  Crystal  para escalar los métodos y RUP como base en el diseño del ciclo de vida. (Ramírez,  2013)    La  arquitectura  orientada  a  servicios  es  tanto  un  marco  de  trabajo  para  el  desarrollo  de  software  como  un  marco  de  trabajo  de  implementación.  Para  que  un  proyecto  SOA  tenga  éxito  los  desarrolladores  de  software  deben  orientarse  ellos  mismos  a  esta  mentalidad  de  crear  servicios  comunes  que  son  orquestados  por  clientes  o  middleware  para  implementar  los  procesos  de  negocio.  El  desarrollo  de  sistemas  usando  SOA  requiere  un  compromiso  con este modelo en términos de planificación, herramientas e infraestructura.    Mobile­D  al  combinar  los  beneficios  de  las  metodologías  los  beneficios  de  las  metodologías  XP,  Crystal  y  RUP  proporciona  las  siguientes  razones  para  ser  la  metodología seleccionada en el desarrollo de software móvil:  ● Está diseñada para el desarrollo de aplicaciones móviles.  ● Es una metodología ágil con ciclos de desarrollo cortos.  ● Facilidad para detectar y resolver tempranamente problemas técnicos.  ● Se  basa  en  el  desarrollo  basado  en  pruebas  que  es  una  de  las  mejores  formas  de  asegurar la calidad.  ● Se logra mejores diseños al basarse en el desarrollo basado en pruebas  ● Tiene  un  enfoque  centrado  en  la  satisfacción  del  usuario  final, permitiendo mejorar  el producto al realizar iteraciones cortas.        10 

El  gran  beneficio  de  SOA  es  la  agilidad  que  proporciona  a  las  organizaciones  que  la usan.  Las  características  propias  de  SOA  permite  a  las  organizaciones  la  capacidad  de  controlar  un  problema  de  forma  general,  permitiendo  una  respuesta  más  rápida  y  eficaz  y  por  tanto  adaptarse de la mejor forma a los cambios.  Los beneficios que puede obtener una organización que adopte SOA son:  ● Mejora en los tiempos de realización de cambios en procesos  ● Facilidad para evolucionar a modelos de negocios basados en tercerización  ● Poder  para  reemplazar  elementos  de  la  capa  aplicativa  SOA  sin  disrupción  en  el  proceso de negocio  ● Facilidad para la integración de tecnologías disímiles  ● Aplicaciones  flexibles:  la  orientación  a  servicios  permite  desarrollar  aplicaciones  con  independencia  de  las  plataformas  y  lenguajes  de  programación que realizan los  procesos  ● Reducción  de  costes:  el  coste  de  ampliar  o  crear  nuevos  servicios  se  reduce  considerablemente tanto en aplicaciones nuevas como ya existentes  ● Riesgo  de  migración:  al  adaptar  SOA  a  partir  de  una  tecnología  existente se siguen  utilizando  los  componentes  existentes,  por  lo  que  se  reduce  el  riesgo  de  introducir  fallos                        11 

   

                CAPÍTULO II     

      12 

2. MARCO TEÓRICO    2.1. INTRODUCCIÓN  Este  capítulo  está  conformado  por  la  explicación  de  los modelos aplicados en esta tesis. Es  decir: requerimientos, análisis y diseño con Mobile­D y modelado de SOA    2.2. INGENIERIA WEB  La  ingeniería  web  es  la  aplicación  de  metodologías  sistemáticas,  disciplinadas  y  cuantificables  al  desarrollo  eficiente,  operación  y  evolución  de  aplicaciones  de alta calidad  en la World Wide Web.   

La  ingeniería  web  se  debe  al  crecimiento  desenfrenado  que  está  teniendo  la  Web  está  ocasionando  un  impacto  en  la  sociedad  y  el  nuevo  manejo  que  se  le  está  dando  a  la  información  en  las  diferentes  áreas  en  que  se  presenta  ha  hecho  que  las  personas tiendan a  realizar todas sus actividades por esta vía.    Desde  que  esto  empezó  a  suceder  el  Internet  se  volvió  más  que  una  diversión  y  empezó  a  ser  tomado  más  en  serio,  ya  que  el  aumento  de  publicaciones  y  de  informaciones hizo que  la  Web  se  volviera  como  un  desafío  para  los  ingenieros  del  software,  a  raíz  de  esto  se  crearon  enfoques  disciplinados,  sistemáticos  y  metodologías  donde  tuvieron  en  cuenta  aspectos específicos de este nuevo medio. (Gaedke, 2014).    2.2.1. ARQUITECTURA SOA  La  Arquitectura  Orientada  a  Servicios  (SOA),  es  un  concepto  de  arquitectura  de  software  que  define  la  utilización  de  servicios  para  dar  soporte  a  los  requisitos  del negocio. Permite  además,  la  creación  de  sistemas  de  información  altamente  escalables  que  reflejan  el  negocio de la organización, y que a su vez brindan de una forma bien definida la exposición        13 

e  invocación  de  servicios (de forma común, pero no exclusiva de los servicios web), lo cual  facilita la interacción entre diferentes sistemas propios o de terceros.     SOA  proporciona  una  metodología  y  un  marco  de trabajo para documentar las capacidades  de negocio y puede dar soporte a las actividades de integración y consolidación.     Los  conceptos  de  software  futurista  probablemente  contribuirán a otra capa de los entornos  computacionales  complejos,  un  demandante  de  recursos  para  el  apoyo  de presupuestos. La  Arquitectura  Orientada  a  Servicios  ayuda  a  resolver  los  problemas  de  la  interoperabilidad,  reutilización,  y  otros  problemas  asociados  con  este  paradigma.  La  visión  de  SOA  también  se  ocupa  de  los  retos  de  software  fuertemente  acoplados  y  clama  por  una  arquitectura  que  se basa en el acoplamiento de los “assets”.     SOA  ayuda  a  la  reducción  del  tiempo  de  salida  al  mercado  y  la  agilidad  del  negocio.  De  hecho,  la  lista  de  ventajas  sigue  creciendo.  El  modelado  orientado  a  los  servicios  proporciona  mecanismo  que  nos  permite  concebir  productos  de  software  que  hemos  ido  construyendo,  adquiriendo,  y  a  la  integración  en  las  últimas  décadas  como  un  servicio  orientado  a  componentes.  Es  importante  que  deben  de  ser  tratadas  por  igual  la  parte  de  análisis, diseño, arquitectura y deben ser reconocidos como servicios. (Bell, 2008).     SOA  ofrece  la  posibilidad  de  llamar  a  un  componente  de  negocios  desarrollado  en  una  plataforma  X,  desde  una  aplicación  corriendo  en  cualquier  plataforma,  en  cualquier  parte  del mundo, utilizando para ello protocolos estándar como REST, XML y HTTP.     Los  sistemas  orientados  a  servicios,  son  diseñados  con  un  bajo  nivel  de  acoplamiento  que  facilita  la  implementación  de  cambios  y  estos  servicios  pueden  ser  desarrollados  en  cualquier lenguaje corriendo en diferentes plataformas.         14 

Los  servicios  son  utilizados  por  una  aplicación  cliente  que  les  envía  mensajes  respetando  un  determinado  contrato  de  servicios,  pero  internamente  estos  servicios  utilizan  los  conceptos de la Programación Orientada a Objetos (OOP).   

  Figura 2.1 Componentes de la Arquitectura SOA  Fuente: SEUR, 2012    2.3. CONSUMOS DE SERVICIOS  ¿Una vez que los servicios están disponibles en la plataforma SOA, que se hace con ellos?  Existen 2 escenarios de uso clave:   1. Consumir los servicios desde una aplicación cliente. Al consumir, nos referimos a  utilizar el servicio, es decir invocar el servicio en cualquier otra aplicación.    

      15 

2.  Composición  de  los  servicios  en  los  procesos  de  negocio.  El  otro  método  más  popular  para  el  uso  de  los  servicios  es  en  los  procesos  de  negocio,  por  la  orquestación  de  los  servicios.  Esto  consiste  esencialmente  en  la  orquestación  "encadenar"  los  servicios  disponibles  en  el  dominio  para  llevar  a  cabo  una  función  de  negocios  o  procesos.  Este  es  un  enfoque  de  programación  relativamente  de  alto  nivel,  sus  construcciones  de  flujo  de  programación  pueden  definir  gráficamente  el  proceso,  tanto  como  el  dibujo  de  un  diagrama  de  flujo  o  un  diagrama  de  actividad  con UML.     2.3.1. SERVICIOS WEB  Los  Servicios  web  son  una  innovación  en  tecnología  de  la  World  Wide  Web.  Un  servicio  web  es  un  programa  de  aplicación  basado  en  la  web  con una interfaz definida que acepta y  procesa  las  solicitudes  y  devuelve  una  respuesta  al  solicitante.  Un  servicio  web  no  está  directamente  ligado  a  una  aplicación  específica.  En  algunos  aspectos,  un  servicio  web  es  similar  a  un  modelo  cliente­servidor,  donde  el  servicio  web  es  un  servidor.  Los  servicios  web  se  basan  en  un  conjunto  de  estándares  de  comunicación,  como  son  XML  para  la  representación  de  datos,  SOAP  (Simple  Object  Access  Protocol)  para  el  intercambio  de  datos  y  el  lenguaje  WSDL  (Web  Services  Description  Language)  para  describir  las  funcionalidades de un servicio web.    2.4. REST  REST,  REpresentational  State  Transfer,  es  un tipo de arquitectura de desarrollo web que se  apoya totalmente en el estándar HTTP.    REST  nos  permite  crear  servicios  y  aplicaciones  que  pueden  ser  usadas  por  cualquier  dispositivo  o  cliente  que  entienda  HTTP,  por  lo  que  es  increíblemente  más  simple  y 

      16 

convencional  que  otras  alternativas  que  se  han  usado  en los últimos diez años como SOAP  y XML­RPC.    REST  se  definió  en  el  2000  por  Roy  Fielding,  coautor  principal  también  de  la  especificación  HTTP.  Podríamos  considerar  REST  como  un  framework  para  construir  aplicaciones web respetando HTTP.    Por  lo  tanto  REST  es  el  tipo  de  arquitectura  más  natural  y  estándar  para  crear  APIs  para  servicios orientados a Internet.    Existen  tres  niveles  de  calidad  a  la  hora  de aplicar REST en el desarrollo de una aplicación  web  y  más  concretamente  una  API  que  se  recogen  en  un  modelo  llamado  Richardson  Maturity  Model  en  honor  al  tipo  que  lo  estableció,  Leonard  Richardson  padre  de  la  arquitectura orientada a recursos. Estos niveles son:  1. Uso correcto de URIs  2. Uso correcto de HTTP.  3. Implementar Hypermedia.    Además  de  estas  tres  reglas,  nunca  se  debe  guardar  estado  en  el  servidor,  toda  la  información  que  se  requiere  para  mostrar  la  información  que  se  solicita  debe  estar  en  la  consulta por parte del cliente.    Al  no  guardar  estado,  REST  nos  da  mucho  juego,  ya  que  podemos  escalar  mejor  sin  tener  que  preocuparnos  de  temas  como  el  almacenamiento  de  variables  de  sesión  e  incluso,  podemos  jugar  con  distintas  tecnologías  para  servir  determinadas  partes  o  recursos  de  una  misma API.          17 

2.5. INGENIERÍA MÓVIL  Cuando  se  piensa  desarrollar  una  aplicación  para  un  dispositivo  móvil  en cualquiera de las  plataformas  y  para  cualquier  entorno  es  de  vital  importancia  reconocer  y  establecer  condiciones  que  garanticen  la  pertinencia,  la  calidad,  la  seguridad,  la  eficiencia  y  el  rendimiento  del  programa  que  se  desea  construir  y  utilizar por medio del dispositivo móvil  (Fling,  2009).  Por  tal  razón  es  de  suma  importancia  seguir  en  forma  clara  las  etapas  generales  del  ciclo  de  vida  del  software  (definición  y  análisis  de  requisitos,  diseño,  desarrollo,  pruebas,  y  mantenimiento),  pero  teniendo muy presentes las grandes diferencias  que  existen  entre el desarrollo de una aplicación para ejecutar en un PC de escritorio y el de  una aplicación para ejecutar en un dispositivo móvil.     Cada  etapa  debe  ir  enfocada  a  establecer  muy  claramente  qué  es  lo  que  se  busca  en  una  pieza  de  software  para  un  dispositivo  móvil,  que  garantice  la  movilidad,  el  fácil  uso  y  el  aprovechamiento de los limitados recursos de memoria.      2.5.1. METODOLOGÍA DE DESARROLLO MOBILE ­ D  El  método  Mobile­D  se  desarrolló  junto  con  un  proyecto  finlandés  en  el  2004.  Fue  realizado,  principalmente,  por  investigadores  de  la  VTT  (Instituto  de  Investigación  Finlandés) y, a pesar de que es un método antiguo, sigue en vigor.    El  objetivo  es  conseguir  ciclos  de  desarrollos  muy  rápidos  en  equipos  muy  pequeños  trabajando  en  un  mismo  espacio  físico.  Según  este  método,  trabajando  de  esa  manera  se  deben conseguir productos totalmente funcionales en menos de diez semanas.    Se  trata  de  método  basado  en  soluciones  conocidas  y  consolidadas: Extreme Programming  (XP),  Crystal  Methodologies  y  Rational  Unified  Process  (RUP),  XP  para  las  prácticas  de 

      18 

desarrollo,  Crystal  para  escalar  los  métodos  y  RUP  como  base  en  el  diseño  del  ciclo  de  vida. 

  Figura 2.2 Ciclo de Desarrollo de Mobile­D  Fuente: Métodos para el Desarrollo de Aplicaciones Móviles (Ramírez, 2013)    Cada  fase  (excepto  la  inicial)  tiene  siempre  un  día  de  planificación  y  otro  de  entrega.  Las  fases son:  ● Exploración.  ​ La  fase  de  exploración,  siendo  ligeramente  diferente  del  resto  del  proceso  de  producción,  se  dedica  al  establecimiento  de  un  plan  de  proyecto  y  los  conceptos  básicos.  por  lo  tanto,  se  puede  separar  del  ciclo  principal  de  desarrollo  (aunque  no  debería  obviarse). Los autores de la metodología ponen además especial  atención a la participación de los clientes en esta fase.    ● Inicialización.  Durante  esta  fase,  se  preparan  e  identifican  todos  los  recursos  necesarios.  Se  preparan  los  planes  para las siguientes fases y se establece el entorno  técnico.  Los  autores  de  Mobile­D  afirman  que  su  contribución  al  desarrollo  ágil  se        19 

centra  fundamentalmente  en  esta  fase,  en la investigación de la línea arquitectónica.  Esta  acción  se  lleva  a  cabo  durante  el  día  de  planificación.  Los  desarrolladores  analizan  el  conocimiento  y  los  patrones  arquitectónicos  utilizados  en  la  empresa  (extraídos  de  proyectos  anteriores)  y  los  relacionan  con  el  proyecto  actual.  Se  agregan  las  observaciones,  se  identifican similitudes y se extraen soluciones viables  para  su  aplicación  en  el  proyecto.  Finalmente,  la  metodología  también  contempla  algunas  funcionalidades  nucleares  que  se  desarrollan  en  esta  fase,  durante  el  día de  trabajo.    ● Productización  o  fase  de  producto.  ​ Se  repite  la  programación  de  tres  días  (planificación  trabajo­liberación)  se  repite  iterativamente  hasta  implementar  todas  las  funcionalidades.  Primero  se  planifica  la  iteración  de  trabajo  en  términos  de  requisitos  y  tareas  a  realizar.  Se  preparan  las  pruebas  de  la  iteración  de  antemano  (de  ahí  el  nombre  de  esta  técnica de Test Driven Development, TDD). Las tareas se  llevarán  a  cabo  durante  el  día  de  trabajo,  Durante  el  último  día  se  lleva  a  cabo  la  integración del sistema  seguida de las pruebas de aceptación.    ● Fase  de  estabilización.  ​ Se  llevan  a  cabo  las  últimas  acciones  de  integración  para  asegurar  que  el  sistema  completo  funciona  correctamente.  Esta  será  la  fase  más  importante  en  los  proyecto  multi­equipo  con  diferentes  subsistemas  desarrollados  por  equipos  distintos.  En  esta  fase,  los  desarrolladores  realizarán  tareas  similares  a  las  que  debían  desarrollar  en  la  fase  de  "productización",  aunque  en  este  caso  todo  el  esfuerzo  se  dirige  a  la  integración  del  sistema.  Adicionalmente  se  puede  considerar en esta fase la producción de documentación.    ● Fase  de  pruebas  y  reparación.  La  última  fase  (prueba  y  reparación  del  sistema)  tiene como meta la disponibilidad de una versión estable y plenamente funcional del        20 

sistema.  El  producto  terminado  e  integrado  se  prueba con los requisitos de cliente y  se eliminan todos los defectos encontrados.    2.5.2. ELEMENTOS  Existen  elementos  principales  involucrados  en  las  diferentes  prácticas  en  el  transcurso  del  ciclo de desarrollo.  ● Ajuste  y  enfoque  de  fases:  ​ Los  proyectos  se  llevan  a  cabo  en  iteraciones  donde  cada una comienza con un día de planificación.  ● Línea  de  arquitectura:  ​ Éste  enfoque  es  utilizado  junto  con  los  patrones  de  arquitectura y modelado ágil.  ● Desarrollo  basado  en  pruebas:  El  enfoque  de  pruebas  ­ primero es utilizado junto  con casos de prueba automatizadas.  ● Integración  continua:  Las  prácticas  de Software Configuration Manager (SCM) se  aplican a través de múltiples medios.  ● Métricas:  ​ Pocas  métricas  se  recogen  con  rigurosidad  y  se  utilizan  con  fines  de  mejorar la retroalimentación y el proceso de desarrollo.  ● Mejoras  en  el  proceso  de  software  ágil:  Talleres  de  post  iteración  son  utilizados  para mejorar continuamente el proceso de desarrollo.  ● Enfoque  centrado  en  el  usuario:  Se  hace  hincapié  en  la  identificación  y  el  cumplimineto de necesidades del usuario final.    Estos  elementos  son  prácticas ya establecidas en metodologías ágiles, con la inclusión de la  línea  de  arquitectura,  que  se  usa  para  capturar  el  conocimiento  de  una  organización  de  soluciones  arquitectónicas,  tanto  de  fuentes  internas  y  externas,  y  usar  estas  soluciones  cuando sea necesario.            21 

2.6. GEOLOCALIZACIÓN  Geolocalización  es  un concepto relativamente nuevo, que ha proliferado de unos dos años a  esta  parte  y  que  hace referencia al conocimiento de la propia ubicación geográfica de modo  automático.    También  denominada  georreferenciación,  la  geolocalización  implica  el  posicionamiento  que  define  la  localización  de  un  objeto  en  un  sistema  de  coordenadas  determinado.  Este  proceso  es  generalmente empleado por los sistemas de información geográfica, un conjunto  organizado  de  hardware  y  software,  más  datos  geográficos,  que  se  encuentra  diseñado  especialmente  para  capturar,  almacenar,  manipular  y  analizar  en  todas  sus  posibles  formas  la  información  geográfica  referenciada,  con  la  clara  misión  de  resolver  problemas  de  gestión y planificación.    Existen  varias  alternativas  para  conocer  esta  ubicación,  aunque  claro,  son  los  dispositivos  móviles  los  que  por  su  portabilidad  con  nosotros  mismos  nos  permitirán  más  fácilmente  conocer  nuestra  ubicación  y  actualizarla  a  medida  que  nos  vamos movilizando y por tanto,  cambiando de ubicación geográfica.    2.6.1. API GOOGLE MAPS  Google  Maps  provee  a  los  desarrolladores  un  API  capaz  de  aprovechar  los  datos  disponibles  a  través  del  servicio,  en  el  seno  de  las  propias  aplicaciones,  permitiendo  a  los  desarrolladores  programar  dentro  de  mapas  basándose  en  un  conjunto  de  librerías  y  servicios proporcionadas por la API de Google Maps como se menciona a continuación.    2.6.1.1. LIBRERÍA DE DIBUJO  La  API  de Google Maps proporciona un conjunto de clases que permite el dibujo de figuras  geométricas como se presentan a continuación:        22 

● CÍRCULOS:  ​ Google  Maps  incluye  la  clases  circle  que  permite  trazar  círculos  en  los  cuales  se  puede  definir  colores,  grosores  y  niveles  de  opacidad  personalizados  para  el  borde  del  círculo,  así  como colores y opacidades personalizados para el área  que engloba.    ● POLILÍNEAS:  ​ Google  Maps  incluye  la  clase polyline que permite trazar caminos,  como  la creación de rutas de ciclismo, caminata y otros. Las polilíneas se componen  de  varias  líneas  conectadas.  Una  línea  consiste  en  dos  puntos:  un  punto  e  partida  y  un punto de terminal. Estos se componen  de coordenadas.    ● SERVICIO  DE  RUTAS: ​ El servicio de rutas de Google Maps proporciona la clase  directions  Service,  que  despliega  una  ruta  completamente  modificable,  a  la  cual  se  le  debe  especificar  un  origen  y  destino  mediante  coordenadas  geográficas,  las  coordenadas  geográficas  se deben representar en base a pares ordenados de latitud y  longitud,  además  esta  ruta  se  adapta  automáticamente  a  calles  y  avenidas  permitiendo describir rutas dentro de Google Maps.    2.7. MODELO VISTA CONTROLADOR (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  ​ int​ erfaz  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.  Este  patrón  de arquitectura de  software  se  basa  en  las  ideas  de  reutilización  de  código  y  la  ​ separación  de  conceptos​ , 

      23 

características  que  buscan  facilitar  la  tarea  de  desarrollo  de  aplicaciones  y  su  posterior  mantenimiento.    2.7.1. DESCRIPCIÓN DEL PATRÓN 

  Figura 2.3. Diagrama MVC  Fuente: W3School, 2015    De manera genérica, los componentes de MVC se podrían definir como sigue:  ● El  Modelo:  ​ Es  la  representación  de la información con la cual el sistema opera, por  lo  tanto  gestiona  todos  los  accesos  a  dicha  información,  tanto  consultas  como  actualizaciones,  implementando  también  los  privilegios  de  acceso  que  se  hayan  descrito  en  las  especificaciones  de  la  aplicación  (lógica  de  negocio).  Envía  a  la  'vista'  aquella  parte  de  la  información  que  en  cada  momento  se  le  solicita  para  que 

      24 

sea  mostrada  (típicamente  a  un  usuario).  Las  peticiones  de  acceso  o  manipulación  de información llegan al 'modelo' a través del 'controlador'.    ● El  Controlador:  ​ Responde  a  eventos  (usualmente  acciones  del  usuario)  e  invoca  peticiones  al  'modelo'  cuando  se  hace  alguna  solicitud  sobre  la  información  (por  ejemplo,  editar  un  documento  o  un  registro  en  una  base  de  datos).  También  puede  enviar  comandos  a  su  'vista'  asociada  si  se  solicita  un  cambio en la forma en que se  presenta  el  'modelo'  (por  ejemplo,  desplazamiento  o  scroll  por  un  documento  o por  los  diferentes  registros  de  una  base  de  datos),  por  tanto  se  podría  decir  que  el  'controlador' hace de intermediario entre la 'vista' y el 'modelo'.    ● La  Vista:  ​ Presenta  el  'modelo'  (información  y  lógica  de  negocio)  en  un  formato  adecuado  para  interactuar  (usualmente  la  interfaz  de  usuario)  por  tanto  requiere  de  dicho 'modelo' la información que debe representar como salida.  INTERACCIÓN DE LOS COMPONENTES  Aunque  se  pueden  encontrar  diferentes  implementaciones  de  MVC,  el  flujo  de control que  se sigue generalmente es el siguiente:  1. El  usuario  interactúa  con  la  interfaz  de  usuario  de  alguna  forma  (por  ejemplo,  el  usuario pulsa un botón, enlace)  2. El  controlador  recibe  (por  parte de los objetos de la interfaz­vista) la notificación de  la  acción  solicitada  por  el  usuario.  El  controlador  gestiona  el  evento  que  llega,  frecuentemente a través de un gestor de eventos (handler) o callback.  3. El  controlador  accede  al  modelo,  actualizándolo,  posiblemente  modificándolo  de  forma  adecuada  a  la  acción  solicitada  por  el  usuario  (por  ejemplo,  el  controlador  actualiza  el  carro  de  la  compra  del  usuario).  Los  controladores  complejos  están  a 

      25 

menudo  estructurados  usando  un  patrón  de  comando  que  encapsula  las  acciones  y  simplifica su extensión.  4. El  controlador  delega  a  los  objetos  de  la  vista  la  tarea  de  desplegar  la  interfaz  de  usuario.  La  vista  obtiene  sus  datos  del  modelo  para  generar  la  interfaz  apropiada  para  el  usuario donde se reflejan los cambios en el modelo. El modelo no debe tener  conocimiento  directo  sobre  la  vista.  Sin  embargo,  se  podría  utilizar  el  patrón  Observador para proveer cierta indirección entre el modelo y la vista, permitiendo al  modelo  notificar  a  los  interesados  de  cualquier  cambio.  Un  objeto  vista  puede  registrarse  con  el  modelo  y  esperar  a  los  cambios,  pero  aun  así  el  modelo  en  sí  mismo sigue sin saber nada de la vista. Este uso del patrón Observador no es posible  en  las  aplicaciones  Web  puesto  que  las  clases  de  la  vista  están  desconectadas  del  modelo  y  del  controlador.  En  general  el  controlador  no  pasa objetos de dominio (el  modelo)  a  la  vista  aunque  puede  dar  la  orden  a  la  vista  para  que se actualice. Nota:  En  algunas  implementaciones  la  vista  no  tiene  acceso  directo  al  modelo,  dejando  que el controlador envíe los datos del modelo a la vista.   5. La  interfaz  de  usuario  espera  nuevas interacciones del usuario, comenzando el ciclo  nuevamente.    2.7.2. USO EN APLICACIONES WEB  Aunque  originalmente  MVC  fue  desarrollado  para  aplicaciones  de  escritorio,  ha  sido  ampliamente  adoptado  como  arquitectura  para  diseñar  e  implementar  aplicaciones  web  en  los  principales  lenguajes  de  programación.  Se  han  desarrollado  multitud  de  frameworks,  comerciales  y  no  comerciales,  que  implementan  este  patrón  estos  frameworks  se  diferencian  básicamente  en  la  interpretación  de  cómo  las  funciones  MVC  se  dividen  entre  cliente y servidor.   

      26 

Los  primeros  frameworks  MVC  para  desarrollo  web  plantean  un  enfoque  de  cliente  ligero  en  el  que  casi  todas  las  funciones,  tanto  de  la  vista, el modelo y el controlador recaen en el  servidor.  En  este  enfoque,  el  cliente  manda  la  petición  de  cualquier  hiperenlace  o  formulario  al  controlador  y  después  recibe  de  la  vista  una  página  completa  y  actualizada  tanto  el modelo como el controlador están completamente alojados en el servidor. Como las  tecnologías  web  han  madurado,  ahora  existen  frameworks  como  JavaScriptMVC,  Backbone  o  jQuery  que  permiten  que  ciertos  componentes  MVC  se  ejecuten  parcial  o  totalmente en el cliente     2.8. PHONEGAP  PhoneGap  es  un  framework  para  el  desarrollo  de  aplicaciones  móviles  producido  por  Nitobi,  y  comprado posteriormente por Adobe Systems. Principalmente, PhoneGap permite  a  los  programadores  desarrollar  aplicaciones  para  dispositivos  móviles  utilizando  herramientas genéricas tales como JavaScript, HTML5 y CSS3.   

  Figura 2.4. Desarrollo de aplicaciones basados en PhoneGap  Fuente: Pixelover, 2012    PhoneGap  permite  el  desarrollo  ya  sea  ejecutando  las  aplicaciones  en  nuestro  navegador  web,  sin  tener  que  utilizar  un  simulador  dedicado  a  esta  tarea,  y  brinda  la  posibilidad  de        27 

soportar  funciones  sobre  frameworks  como  JQuery  Mobile,  además  nos  permite  acceder  a  las funcionalidades nativas de los dispositivos móviles utilizando JavaScript.     Así  podemos  desarrollar  toda  la  lógica  de  nuestra aplicación en JavaScript y utilizar la API  de PhoneGap para acceder a las funcionalidades nativas del dispositivo.    Para  poder  compilar  el  código  generado  al  código  nativo  para  las  diferentes  plataformas  móviles,  PhoneGap  nos proporciona el servicio PhoneGap Build que permite subir nuestros  archivos  con  código  a  un  servidor  que  se  encarga  de  compilar  nuestro  código  al  código  nativo para las diferentes plataformas móviles.   

  Figura 2.5 PhoneGap Build  Fuente: Pixelover, 2012   

      28 

2.9. EMULADOR RIPPLE  Ripple  es  una  extensión  para  Google  Chrome  que  recrea  el  entorno  y  sensores  de  un  dispositivo  móvil  real  (iOS,  Android  y  Blackberry)  dentro  del  navegador  web.  Tiene  un  sistema  avanzado  de  simulación  para  probar  aplicaciones  basadas  en  PhoneGap  y  WebWorks de Blackberry.    Con  este  plugin  y  el  soporte  HTML5  de  Google  Chrome  es  posible  simular,  con  bastante  aproximación  a  la  realidad,  prácticamente  cualquier  aplicación  basada  en  tecnologías web,  incluso  si  utiliza  eventos  o  sensores  exclusivos  del  móvil  como  uso  de  botones  o  movimientos del acelerómetro.    2.9.1. CAPACIDADES DE RIPPLE  A  pesar  que  Chrome  comparte  el  mismo  motor  de  render  (WebKit)  que  iOS,  Android  y  Blackberry  y  tiene  la  posibilidad  de  mostrar  elementos  gráficos  prácticamente  en  las  mismas  condiciones  que  un  equipo  móvil,  tiene  algunas  restricciones.  Los  navegadores  carecen de algunos eventos y sensores exclusivos de los dispositivos móviles.    Ripple  se  encarga  de  simular  estas  capacidades  para  acercarse  al  máximo  posible  al  verdadero entorno móvil algunas de las capacidades que instala en el navegador son:    ● Devices:  Simula la apariencia, tamaño y resolución de pantalla de múltiples equipos  y  sistemas  operativos  móviles.  También  permite  cambiar  la  orientación  del  equipo  en horizontal o vertical.  ● Platforms:  Muestra  las  plataformas  y  versiones  disponibles  para  emulación:  PhoneGap (Apache Cordova), Blackberry Webworks y web móvil.  ● Information:  Despliega  información  importante  sobre  el  documento  y  modo  de  emulación actual.        29 

● Accelerometer:  Muestra  un  dispositivo  virtual en 3D que se puede rotar libremente  sobre  todos  sus  ejes.  Al  manipular  el  dispositivo  virtual  se  envía  directamente  la  información  a  la  aplicación  para  que  reaccione  de  igual  manera,  simulando  así  el  movimiento  real  de  un  dispositivo.  la  información  detallada  se  muestra  en  tiempo  real  para  depurar  y  comprobar  los  resultados.  Incluye  también  la  opción de simular  la acción de “sacudida” o “shake”.  ● Geolocation:  Permite  simular  y  manipular  todos  los  valores  de  las  coordenadas  de  geolocalización,  desde  la  latitud  y  longitud  hasta  la  dirección  y velocidad en que se  desplaza  el  móvil.  Incluye  además  un  mapa  para  ubicar  gráficamente  las  coordenadas que se introducen.  ● Events:  Activa  eventos  específicos  de  PhoneGap  como  deviceReady,  que señala el  momento  en  que  el  dispositivo  está  listo  o  backbutton,  que  se  activa  cuando  se  presiona  el  botón  de  regresar  de  algunos  dispositivos.  Esta  característica  es  particularmente  útil  porque  permite  emular  el  comportamiento  de  una  aplicación  PhoneGap en un dispositivo móvil real.                                30 

 

                  CAPÍTULO III          31 

3. MARCO APLICATIVO    3.1. INTRODUCCIÓN  En  este  capítulo  se  desarrollará  el  marco  teórico  constituido  por  los  métodos,  técnicas  (procedimientos),  e  instrumentos  que  se  emplearán  en  la  ejecución  del  proyecto  de  investigación  para  poner  a  prueba  la  hipótesis,  alcanzar  los  objetivos  propuestos  y  así  dar  una respuesta al problema de investigación.    Como  se  trata  de  una  Plataforma  de  Geolocalización  el  cual  hace  el  uso  de  teléfonos  móviles  surge  la  necesidad  de  utilizar  la  metodología;  orientada  a  móviles  Mobile­D  Se  integra  métodos  de  Web  Service  usando  Rest  (SOA),  para  la  comunicación  entre  la  plataforma web y la aplicación móvil.    Para  el  desarrollo  del  presente  trabajo  se  usa  las  fases  del  Mobile­D,  para  realizar  la  aplicación  móvil  y  plataforma  web  del  cual  se  consume  los  servicios,  para  dar  solución  a  los objetivos planteados:    ● Exploración y Categorización  ● Inicialización  ● Productización e implementación del Web Service  ● Fase de Estabilización  ● Fase de Prueba    3.2. EXPLORACIÓN Y CATEGORIZACIÓN  Para  esta  fase  se  va  a  comenzar  con  el  levantamiento  de  información,  identificar  los  requerimientos  necesarios  para  la  ejecución  del  presente  trabajo,  es decir analizar los datos  necesarios que los usuarios (cliente, administrador) deben suministrar.        32 

La  categorización  de  servicios  en base a los requerimientos es muy buena práctica a la hora  de  administrar  nuestra  arquitectura  SOA  (gobierno  SOA)  ya  que  nos  ayuda  a  etiquetar  los  servicios  que  conformarán  nuestro  inventario  en  función  de  la  lógica  que  contienen  y  su  grado de reutilización.    3.2.1. DEFINICIÓN DE LOS GRUPOS DE INTERÉS  ● Miembros  de  una  familia  que  necesitan  contar  con  información  al  alcance  de  la  mano sobre la ubicación de alguna persona dentro de la familia.  ● Personas  que  necesiten  estar  seguros  en  lugares  desconocidos  o  en  horarios  nocturnos.    3.2.2. ACTORES  Los  actores  del  sistema  involucrados  con  la  construcción  de  la  plataforma  de  geolocalización de personas son principalmente el usuario y el administrador.    3.2.3. ROLES Y TAREAS  Para el desarrollo del sistema se han logrado identificar a los siguientes usuarios:    NOMBRE 

DESCRIPCIÓN 

STAKEHOLDER 

Usuario Final 

Es  el  que  requiere  los  servicios  de  información,  Usuario  que  también  administra  los  miembros de su familia 

Administrador 

Verifica  la funcionalidad de  los  servicios  que  el  usuario  Administrador  final utiliza  Tabla 3.1 Roles y tareas de los usuarios  Fuente: Elaboración propia        33 

3.2.4. COLECCIÓN DE REQUERIMIENTOS  Es  una  tarea  en  la  cual  los  requerimientos  para  el  producto  son  establecidos  en  nivel  apropiado,  los  cuales  pueden  ser  funcionales  o  no  funcionales.  El  objetivo  es  producir  definición inicial general del producto, propósito y funcionalidad.    3.2.4.1. FUNCIONALES  ● La aplicación debe ser capaz de mostrar todos miembros de la familia.  ● La aplicación debe ser capaz de agregar un nuevo miembro a la familia.  ● La  aplicación debe ser capaz de mostrar la trayectoria en tiempo real de un miembro  de la familia.  ● La  plataforma  deberá  permitir:  Adicionar,  eliminar y modificar a otros usuarios que  tengan acceso al control de la base de datos.  ● La plataforma deberá permitir gestionar a los usuarios finales.  ● La base de datos deberá tener la última ubicación proporcionada por la aplicación.    3.2.4.2. NO FUNCIONALES  ● La plataforma deberá ser autenticado mediante algoritmos de seguridad.  ● La  aplicación  y  la  plataforma  desplegará  mensajes  de  confirmación  acorde  a  las  acciones de adición, eliminación o modificación    3.2.5. CATEGORIZACIÓN DE REQUERIMIENTOS  ● Servicios de Entidad  ○ Son  los  requerimientos  que  tienen  las  operaciones  de  adicionar,  eliminar  y  modificar, tanto en la plataforma como en la aplicación.  ● Servicios de Tarea  ○ Autentificación para el acceso a la plataforma o aplicación móvil          34 

3.2.6. ARQUITECTURA PROTOTIPO   Mediante  la  identificación  de  los  requerimientos  funcionales,  se  establecieron  dos  subsistemas que son implementados, para cumplir con los objetivos del presente trabajo.   

  Figura 3.1. Arquitectura del prototipo  Fuente: Elaboración propia    Básicamente  el  prototipo  presenta  dos  módulos  plenamente  identificados:  Administración,  destinado  a  la  gestión  de  los  datos  del  sistema  y  usuario,  orientada  al  uso  de  la  aplicación  con interfaces gráficas.  ● Administración:  Esta  opción  del  sistema  permite  ver  las  ubicaciones  de  todos  los  usuarios.  Esta  opción  está  habilitada  solamente  para  aquellos  usuarios  autorizados  para acceder a la plataforma.  ● Usuario:  ​ Quienes  a  partir  de  la  interfaz  gráfica  que  tiene  la  aplicación,  éste  puede  realizar búsquedas de personas.    3.3. INICIALIZACIÓN  La planificación del proyecto entorno a la parte técnica se hará durante esta fase, definiendo  el  editor,  lenguaje,  framework  y  APIs  con  el  que  se  va  a  trabajar  para  el  desarrollo  del        35 

servicio  web  y  la  aplicación  móvil  como  tal; en cuanto al servicio web se hace el diseño de  la  arquitectura  a  usar  y  la  aplicación  se  lista  las  funcionalidades  que  se  hacen  necesarias  dentro de los módulos a desarrollar    3.3.1. ENTORNO DE TRABAJO  ● Brackets, editor de texto de desarrollo web.  ● PhoneGap, framework para desarrollo de aplicaciones híbridas.  ● API Google Maps  ● Web Service Rest  ● Extensión de Google Chrome “Advanced REST Client.”    3.3.2. LISTA DE FUNCIONALIDADES  Para llevar con éxito el desarrollo del prototipo, se definió una serie de tareas  TAREA 

PRIORIDAD 

Diseño de interfaces de usuario 



Diseño de la base de datos 



Diagrama de Base de Datos 



Gestión de usuarios 



Gestión de EndPoints 



Establecimiento parámetros de búsqueda 



Traza de rutas 



      36 

Pruebas de aceptación 



Tabla 3.2. Lista de tareas  Fuente: Elaboración propia    3.3.3. PLANIFICACIÓN DE FASES  Para  el  desarrollo  de  la  aplicación,  se  planifica  realizar  por  lo  menos  tres  iteraciones  ejecutadas  con  un  periodo  de  una  semana  cada  una  según  los  criterios  de  prioridad  establecidas para cada una de las tareas que se definieron en la anterior tabla.   

  Figura 3.2. Esquema de desarrollo del sistema  Fuente: Elaboración Propia    3.3.4. ITERACIONES    FASE 

ITERACIÓN 

DESCRIPCIÓN 

Exploración 

 

 

Inicialización 

Iteración 0 

Establecimiento  del  proyecto,        37 

desarrollo  de  tareas  basadas  por  prioridades 

Productización  implementación 

Implementación  de  módulos. 

e  de 

Web  Iteración 1 

Service 

Refinamiento  Generación 

de 

interfaces. 

y  ejecución  de 

pruebas de aceptación 

Estabilización 

Iteración 2  

Generación 

y  ejecución  de 

pruebas 

de 

aceptación. 

Refactorización de módulos. 

Iteración  pruebas 

Pruebas del sistema 

de sistemas 

Se  realiza  la  evaluación  de  las  pruebas  y  se  realiza  el análisis de  los resultados 

Tabla 3.3. Descripción de las Iteraciones  Fuente: Elaboración propia    Las  tareas  1,  2  y  3  deben  ser  elaborados  en  la  iteración  1  con  la  una  planificación  de  elaboración de una semana.    Las  tareas  4  y  5  son  realizados  en  la  iteración 2. La planificación de entregas del trabajo es  de aproximadamente una semana, las actividades se realizan de forma paralela.    Finalmente  las  tareas  6,  7 y 8 se realizan en la última iteración de forma paralela secuencial  con duración de dos semanas.            38 

TAREA 

DÍAS 

Diseño de interfaces de usuario 



Diseño de la base de datos 



Diagrama de clases 



Gestión de usuarios 



Gestión de EndPoints 



Establecimiento parámetros de búsqueda 



Traza de rutas 



Pruebas de aceptación 



Tabla 3.4. Estimación de esfuerzos de Procesos Principales  Fuente: Elaboración propia    3.3.5. PLANIFICACIÓN DEL SERVICIO WEB RESTful  La  aplicación  Android  a  construir  requiere  que  el  servicio  web  le  posibilite  centralizar  la  base  de  datos  en  un  servidor  remoto  y  que  permita  realizar  las  4 operaciones básicas sobre  estos datos.  También  es  necesario  que  el  usuario  cree  primero  una  cuenta  y  luego se loguee para poder  obtener  una  clave  de  acceso  a la API. Sin estas condiciones el usuario no tendrá acceso a la  información. 

      39 

En  cuanto  a  la  estructura  del  servicio,  nos  guiaremos  en  un  estilo  sencillo  MVC  para  manejar  las  peticiones  del  cliente.  Así  que los pasos de desarrollo quedarían de la siguiente  forma:  ● Configuración para desarrollo web  ● Diseño e implementación de la base de datos  ● Realización de conexion Mysql con Php  ● Creación de los modelos de datos  ● Definición de las vistas  ● Manejo de las llamadas al servicio web RESTful (CRUD5)  ● Realizar pruebas al servicio web 

3.3.6. DISEÑO E IMPLEMENTACIÓN DE LA BASE DE DATOS   

  Figura 3.3. Modelo Relacional  Fuente: Elaboración propia 

5

 ​ Del acrónimo en inglés Create, Read, Update y Delete 

      40 

3.3.7. DISEÑO DE LA INTERFAZ DEL ADMINISTRADOR 

  Figura 3.4. Inicio de sesión  Fuente: Elaboración propia 

  Figura 3.5. CRUD de usuarios (Administrador)  Fuente: Elaboración propia        41 

  Figura 3.6. Ubicación de Usuarios (Ver Mapa)  Fuente: Elaboración propia   

  Figura 3.7. Rastreo de un Usuario  Fuente: Elaboración propio        42 

 3.3.8. DISEÑO DE LA INTERFAZ DEL USUARIO 

  Figura 3.8. Registro en la Aplicación  Fuente: Elaboración propia        43 

  Figura 3.9. Interfaz Manejo Usuario  Fuente: Elaboración propia    3.4. PRODUCTIZACIÓN E IMPLEMENTACIÓN DE WEB SERVICE  Durante  esta  fase  ya  se  hace  el  desarrollo  de  la  aplicación  en  su  totalidad,  una  vez  establecidas  las  listas  de  funcionalidades  se  comienza  a  desarrollar  según el método que se  recomienda  en  esta  metodología  (Planificación­trabajo­liberación)  haciendo  las  iteraciones  necesarias  para  la  programación.  Identificando  la  cantidad  de  actividades,  diálogos  y  formularios que se necesiten para  desarrollar los Scripts del Web Service.        44 

3.4.1. IMPLEMENTACIÓN DE LOS WEB SERVICES  3.4.1.1. PROCESAR LAS RUTAS DE LOS RECURSOS  Crear  el  archivo  index.php  como  el  núcleo  monitor  que  exponga  las  rutas  de  los  recursos.  Es decir, procesar todas las urls desde aquí para mantener el control de forma compacta.    La  idea  básica  es  usar  una  estructura  switch  para  atender  los  cuatro  verbos  GET,  POST,  PUT  y  DELETE  dependiendo  del  segmento  que  llega  a  través  de  PATH_INFO.  El  algoritmo preciso sería el siguiente:    Los pasos a seguir son los siguientes.    1.  Obtener  el segmento de la url para identificar el recurso. Usa el método explode()  con el limitador ‘/’ para separar la ruta que se encuentra en PATH_INFO.    2.  Determina  si  el  recurso  solicitado  existe.  Una  alternativa  es  usar  array_shift()  para  obtener  el  primer  valor  del array (en el caso anterior sería el valor “contactos”)  y luego comparar su existencia en un array que contenga los recursos disponibles.    3.  Extrae  el  método  de  la  petición  a través de $_SERVER['REQUEST_METHOD']  y  usa  el  valor  como  parámetro  de  una  estructura  switch.  Dependiendo  del  recurso  que  se  obtuvo  y  el  método  procesado  así  mismo  se  escribirán  las  instrucciones  necesarias.    El marco general quedaría de la siguiente forma:     

      45 

  Figura 3.10. Estructura del index.php  Fuente: Elaboración propia    3.4.1.2. MANEJADORES DE SALIDA EN LA VISTA  Los  manejadores  de  salida  permiten  construir  las  respuestas  hacia  el cliente con el formato  y las cabeceras necesarias para seguir los estándares de REST.         46 

Con  estos  componentes  aseguramos  la  misma  estructura  en  todas  las  respuestas.  Por  cada  formato de datos aceptado construiremos una clase.     Crear un nuevo archivo llamado VistaApi.php y añadir la siguiente definición.   
Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.