Your SlideShare is downloading. ×
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas

248

Published on

Las tecnologías de información (TI) contextuales o dependientes de la localización …

Las tecnologías de información (TI) contextuales o dependientes de la localización
del usuario, están proyectándose como el nuevo paradigma de interacción entre el
usuario y su entorno. Sistemas en donde el usuario recibirá retroalimentación de
información contextual dependiendo del lugar donde se localice.
Estos servicios permitirán, entre otras cosas, realizar las actividades que tiene
programadas en su agenda, las cuales, están relacionadas con una ubicación
especifica, es decir, se define una relación espacio-tiempo, a diferencia de las
agendas tradicionales que únicamente administran actividades atemporales.
En este proyecto se presenta un sistema novedoso que utiliza tecnologías de
auto-identificación como RFID y QRCodes, y teléfonos celulares con sistema
operativo Android para la localización de usuarios dentro de edificios multinivel y
en áreas tipo campus, es decir con varios edificios. Además ofrece la asociación
de objetos del mundo real al sistema de información mediante la autoidentificación,
utilizando RFID y QRCodes.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
248
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. cenidet Centro Nacional de Investigación y Desarrollo Tecnológico Departamento de Ciencias Computacionales TESIS DE MAESTRÍA EN CIENCIAS EN CIENCIAS DE LA COMPUTACIÓN Servicios de localización conscientes del contexto aplicandoperfiles de movilidad y tecnologías de localización heterogéneas presentada por Israel Arjona Vizcaíno Ing. en Sistemas Computacionales por el I. T. de Tepic como requisito para la obtención del grado de: Maestría en Ciencias en Ciencias de la Computación Director de tesis: Dr. Juan Gabriel González Serna Co-Director de tesis: Dr. Javier Ortiz Hernández Jurado: Dra. Azucena Montes Rendón – Presidente Dr. José Antonio Zarate Marceleño – Secretario M.C. Hugo Estrada Esquivel – Vocal Dr. Juan Gabriel González Serna – Vocal SuplenteCuernavaca, Morelos, México. 14 de Septiembre de 2009
  • 2. “2009, Año de la Reforma Liberal” SUBSECRETARÍA DE EDUCACIÓN SUPERIOR DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICOANEXO No.11 M10 ACEPTACIÓN DEL DOCUMENTO DE TESIS Cuernavaca, Morelos, 07/septiembre/2009Dr. Hugo Estrada EsquivelJefe del departamentode Ciencias ComputacionalesPresente. At´n: Dr. Raúl Pinto Elías. Presidente del Consejo del Posgrado de Ciencias ComputacionalesNos es grato comunicarle, que conforme a los lineamientos para la obtención del grado de Maestro enCiencias de este Centro, y después de haber sometido a revisión académica la tesis titulada “Servicios delocalización conscientes del contexto aplicando perfiles de movilidad y tecnologías de localizaciónheterogéneas” realizada por el alumno Israel Arjona Vizcaíno y dirigida por el Dr. Juan Gabriel GonzálezSerna y Codirigida por el Dr. Javier Ortiz Hernández, habiendo realizado las correcciones que le fueronindicadas, acordamos ACEPTAR el documento final de tesis, así mismo le solicitamos tenga a bien extenderel correspondiente oficio de autorización de impresión.c.c.p. Dr. Gerardo Reyes Salgado.- Subdirección Académica. L.I. Guadalupe Garrido Rivera.- Jefe Departamento de Servicios Escolares. Dr. Juan Gabriel González Serna.- Directores de tesis InteresadoInterior Internado Palmira s/n Col. Palmira C. P. 62490 Cuernavaca, Morelos, México.Tel. 777 362 77 70 con 10 líneas Fax : 362 77 95 (directo)www.cenidet.edu.mx
  • 3. “2009, Año de la Reforma Liberal” SUBSECRETARÍA DE EDUCACIÓN SUPERIOR DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICOANEXO No. 12 M11 AUTORIZACIÓN DE IMPRESIÓN DE TESIS Cuernavaca, Morelos, 07/septiembre/2009C. Israel Arjona VizcaínoCandidato al grado de Maestra en Cienciasen Ciencias de la ComputaciónPresente.Después de haber atendido las indicaciones sugeridas por la Comisión Revisora de la Academia de Cienciasde la Computación en relación a su trabajo de tesis cuyo título es: “Servicios de localización conscientesdel contexto aplicando perfiles de movilidad y tecnologías de localización heterogéneas”, me es gratocomunicarle que conforme a los lineamientos establecidos para la obtención del grado de Maestro en Cienciasen este centro se le concede la autorización para que proceda con la impresión de su tesis.c.c.p. Dr. Gerardo Reyes Salgado.- Subdirección Académica Dr. Raúl Pinto Elías.- Presidente de la Academia de Ciencias Computacionales L.I. Guadalupe Garrido Rivera.- Jefe del Departamento de Servicios Escolares Expediente
  • 4. Dedicatoria A Dios: Por hacerme un hombre afortunado, ya que nada me ha sido fácil. A mis padres: Ramón Arjona Flores y Ernestina Vizcaíno, sé que es poco, comparado con todo lo que me han dado. A mis hermanas:Myriam y Denisse, el triunfo también es suyo, contribuyeron con su apoyo incondicional. A mi novia: Gabriela Marisol, por soportar, mantener y respetar el amor a la distancia.
  • 5. AgradecimientosDifícilmente podré, en tan limitado espacio, agradecer adecuadamente todo y atodos los que algo debo en relación al trabajo que aquí presento. Si algo tiene demeritorio, sin duda es fruto de muchos más de los que menciono en estas líneas.Primero, y a gran distancia del resto, mis padres. Sin su sacrificio, la ayuda de losque siguen habría sido estéril.A mis hermanas Denisse y Myriam gracias por apoyarme en todo momento y entodas mis decisiones, que aunque no siempre son las más acertadas las respetan.A mis primos Celia Emma y José Luis, y sus hijos Alejandro y Andrea porbrindarme un techo y hacerme sentir como en mi hogar. Su contribución esespecial.A toda mi familia: abuelos, tíos, sobrinos, primos, son tantos que se necesitaría deotra tesis para describir el apoyo que he recibido de cada uno de ustedes. Graciasmuchas gracias.Gracias, por supuesto, al Dr. Juan Gabriel, mi director de tesis. Sus consejos,correcciones y confianza me señalaron el camino cuando lo necesité.A los revisores de esta tesis: Dra. Azucena Montes Rendón, Dr. Hugo EstradaEsquivel y al Dr. José Antonio Zarate Marceleño cuya incansable labor dejardinería ha hecho posible que este trabajo pueda ser mostrado y no sólo leído.A mis compañeros de sistemas distribuidos Rubí, Yanet, Omar, Christian y JoséLuis por tenderme la mano y por su grata compañía.A todos mis compañeros de generación, de ingeniería de software y deinteligencia artificial por la ayuda recibida a lo largo de este tiempo, globalmentemuy positivo.A todos mis amigos ¡gracias por los buenos momentos! Especialmente a los deSanta María del Oro y Tepic, Nayarit.Al Centro Nacional de Investigación y Desarrollo Tecnológico por habermepermitido pertenecer a su comunidad estudiantil y realizar así mis estudios demaestría.Al Consejo Nacional de Ciencia y Tecnología por la beca para manutenciónotorgada.Termino por mi novia Gabriela, precisamente porque, al menos en mi mente y enmi corazón, ella fue siempre la primera, la razón de mis esfuerzos. ¡Gracias, Gaby!
  • 6. ResumenLas tecnologías de información (TI) contextuales o dependientes de la localizacióndel usuario, están proyectándose como el nuevo paradigma de interacción entre elusuario y su entorno. Sistemas en donde el usuario recibirá retroalimentación deinformación contextual dependiendo del lugar donde se localice.Estos servicios permitirán, entre otras cosas, realizar las actividades que tieneprogramadas en su agenda, las cuales, están relacionadas con una ubicaciónespecifica, es decir, se define una relación espacio-tiempo, a diferencia de lasagendas tradicionales que únicamente administran actividades atemporales.En este proyecto se presenta un sistema novedoso que utiliza tecnologías deauto-identificación como RFID y QRCodes, y teléfonos celulares con sistemaoperativo Android para la localización de usuarios dentro de edificios multinivel yen áreas tipo campus, es decir con varios edificios. Además ofrece la asociaciónde objetos del mundo real al sistema de información mediante la auto-identificación, utilizando RFID y QRCodes.
  • 7. AbstractContextual or dependent information technologies are projected as the newparadigm of interaction between the user and his or her environment. Systemswhere the user will receive feedback from contextual information depending onwhere it is located.These services will, among other things, do the activities scheduled on his or heragenda, which are related to a specific location, i.e. define a relationship betweenspace and time, unlike traditional agendas which only administer timelessactivities.This project presents a novel system that uses self-identification technologies suchas RFID and QRCodes, and mobile phones with the Android operating system forlocating users inside multi-level buildings and in campus-type areas, i.e. withseveral buildings. The association also offers real-world objects to the informationsystem by means of self-identification using RFID and QRCodes.
  • 8. Tabla de contenidoTabla de contenido __________________________________________________________ iListado de figuras __________________________________________________________ ivListado de tablas ___________________________________________________________ viGlosario de términos y siglas _________________________________________________ vii1 Capítulo 1 Introducción___________________________________________________ 1 1.1 Introducción ____________________________________________________________ 3 1.2 Antecedentes del proyecto ________________________________________________ 4 1.2.1 API SMS para el Procesamiento de Consultas Georeferenciadas / No Georeferenciadas [GUERRA 2007] ____________________________________________________________________ 4 1.2.2 Gateway SMS Pull para servicios basados en localización con una arquitectura de servicios Web [QUIÑONEZ 2007] ______________________________________________________________ 4 1.3 Descripción del problema _________________________________________________ 5 1.4 Objetivos del proyecto ____________________________________________________ 6 1.5 Justificación y beneficios del proyecto _______________________________________ 7 1.6 Alcances y limitaciones del proyecto ________________________________________ 8 1.7 Organización del documento _______________________________________________ 82 Capítulo 2 Estado del arte _______________________________________________ 11 2.1 Simple Location-based Application Development for Mobile Phones [TITICA 2007] _ 13 2.2 RADAR: An In-Building RF-based User Location and Tracking System [RADAR 2000] 15 2.3 The Horus WLAN location determination system [HORUS 2004] _________________ 17 2.4 CAALIX Complete Ambient Assisted Living Experiment [CAALIX 2007] ____________ 18 2.5 Location Awareness in Community Wireless LANs [FERSCHA 2001] ______________ 20 2.6 UbiqMuseum: A Bluetooth and Java Based Context-Aware System for Ubiquitous Computing [CANO 2006] ________________________________________________________ 22 2.7 A Location-aware System using RFID and Mobile Devices for Art Museums [TESOREIRO 2008] _____________________________________________________________ 25 2.8 Comparativa del estado del arte con el proyecto _____________________________ 26 2.9 Servicio UBICACEL de iusacell [UBICACEL 2008]_______________________________ 27 2.10 Servicio Localízame de Movistar [LOCALIZAME 2008]__________________________ 27 2.11 AVL Reach U / Localización y Administración Vehicular Telcel [AVL REACH 2008] ___ 28 2.12 Tramigo [TRAMIGO 2008] ________________________________________________ 28 2.13 Skyhook WPS [SKYHOOK 2008] ____________________________________________ 283 Capítulo 3 Marco teórico ________________________________________________ 31 i
  • 9. 3.1 Plataformas de dispositivos móviles ________________________________________ 33 3.1.1 Windows Mobile ___________________________________________________________ 33 3.1.2 Symbian __________________________________________________________________ 33 3.1.3 J2ME ____________________________________________________________________ 33 3.1.4 iPhone OS ________________________________________________________________ 33 3.1.5 Android __________________________________________________________________ 33 3.2 REST (Representational StateTransfer) ______________________________________ 34 3.3 JSON__________________________________________________________________ 34 3.4 OSGi __________________________________________________________________ 35 3.5 Servicios basados en localización (LBS) ______________________________________ 35 3.6 Técnicas de posicionamiento______________________________________________ 37 3.6.1 Basadas en redes WAN ______________________________________________________ 37 3.6.1.1 GPS _________________________________________________________________ 37 3.6.1.2 Localización usando GSM ________________________________________________ 38 3.6.2 Basadas en redes LAN _______________________________________________________ 39 3.6.2.1 WiFi ________________________________________________________________ 39 3.6.2.2 RFID ________________________________________________________________ 39 3.6.2.3 Localización por Infrarrojos ______________________________________________ 40 3.6.2.4 Bluetooth ____________________________________________________________ 40 3.6.2.5 Wi-Max ______________________________________________________________ 414 Capítulo 4 Análisis y diseño ______________________________________________ 43 4.1 Análisis _______________________________________________________________ 45 4.2 Diseño ________________________________________________________________ 62 4.2.1 Cliente ___________________________________________________________________ 62 4.2.1.1 Paquete mx.edu.cenidet.clientetareasandroid.activities _______________________ 63 4.2.1.2 Paquete mx.edu.cenidet.clientetareasandroid.interfaz ________________________ 65 4.2.1.3 Paquete mx.edu.cenidet.clientetareasandroid.codigobarras ____________________ 67 4.2.1.4 Paquete mx.edu.cenidet.clientetareasandroid.conexionhttp ____________________ 68 4.2.1.5 Paquete mx.edu.cenidet.clientetareasandroid.objetos _________________________ 69 4.2.1.6 Paquete mx.edu.cenidet.clientetareasandroid.rfid ____________________________ 71 4.2.1.7 Paquete mx.edu.cenidet.clientetareasandroid.utilerias ________________________ 72 4.2.2 Servidor de tareas __________________________________________________________ 73 4.2.2.1 Paquete mx.edu.cenidet.servidortareasosgi.basedatos ________________________ 73 4.2.2.2 Paquete mx.edu.cenidet.servidortareasosgi.osgi _____________________________ 74 4.2.2.3 Paquete mx.edu.cenidet.servidortareasosgi.objetos __________________________ 74 4.2.2.4 Paquete mx.edu.cenidet.servidortareasosgi.utilerias __________________________ 76 4.2.2.5 Paquete mx.edu.cenidet.servidortareasosgi.recursosrestlet ____________________ 76 4.2.3 Interacción cliente-servidor___________________________________________________ 77 4.2.3.1 Autentificación del usuario ______________________________________________ 77 4.2.3.2 Consulta de tareas pendientes____________________________________________ 79 4.2.3.3 Consultar el detalle de una tarea pendiente _________________________________ 81 4.2.3.4 Completar/Cancelar una tarea pendiente ___________________________________ 83 4.2.3.5 Dar de alta una nueva tarea (establecer tarea como pendiente) _________________ 85 4.2.3.6 Tarea de guiado _______________________________________________________ 91 4.2.4 Diseño de las URL __________________________________________________________ 96 4.2.5 Diseño del modelo de la base de datos __________________________________________ 99 4.2.6 Diseño de la aplicación Web para la gestión de las tareas __________________________ 101 4.2.6.1 Paquete mx.edu.cenidet.basedatos_______________________________________ 102 ii
  • 10. 4.2.6.2 Paquete mx.edu.cenidet.xmlread ________________________________________ 1035 Capítulo 5 Implementación _____________________________________________ 105 5.1 Detalles tecnológicos ___________________________________________________ 107 5.1.1 Cliente __________________________________________________________________ 107 5.1.2 Servidor _________________________________________________________________ 108 5.1.3 Aplicación Web de gestión de tareas __________________________________________ 108 5.2 Interacción del sistema cliente-servidor ____________________________________ 108 5.2.1 Autenticación del usuario ___________________________________________________ 108 5.2.2 Consulta de tareas pendientes _______________________________________________ 110 5.2.3 Completar/Cancelar una tarea _______________________________________________ 111 5.2.4 Nueva tarea (establecer una tarea como pendiente) ______________________________ 113 5.2.5 Tarea de guiado por RFID ___________________________________________________ 115 5.2.6 Tarea de guiado por QRCodes ________________________________________________ 117 5.3 Interacción de la aplicación Web__________________________________________ 119 5.3.1 Administración de usuarios __________________________________________________ 120 5.3.2 Administración de recursos __________________________________________________ 121 5.3.3 Administración de ubicaciones _______________________________________________ 122 5.3.4 Administración de tareas ____________________________________________________ 124 5.3.5 Administración de tareas de los usuarios _______________________________________ 1256 Capítulo 6 Pruebas ____________________________________________________ 127 6.1 Pruebas de configuración y conexiones ____________________________________ 129 6.2 Pruebas de auto-identificación ___________________________________________ 132 6.3 Pruebas de localización y guiado del dispositivo móvil ________________________ 134 6.4 Pruebas de administración de tareas ______________________________________ 138 6.5 Pruebas de administración de la información de la base de datos ______________ 1427 Capítulo 7 Conclusiones ________________________________________________ 157 7.1 Conclusiones __________________________________________________________ 159 7.2 Aportaciones __________________________________________________________ 159 7.3 Trabajos futuros _______________________________________________________ 160 7.4 Publicaciones _________________________________________________________ 161Anexos___________________________________________________________________ 163 Anexo A Definición de la interfaz de usuario _______________________________________ 165 Anexo B Plan de pruebas T-Guide _______________________________________________ 171Referencias _______________________________________________________________ 189 iii
  • 11. List ado de figurasFigura 1.1 Tecnologías inalámbricas _________________________________________________________ 4Figura 2.1 Sistema de localización por ángulo de llegada ________________________________________ 14Figura 2.2Plano utilizado sistema RADAR [RADAR 2000] ________________________________________ 16Figura 2.3 Arquitectura proyecto CAALIX [CAALIX 2007]_________________________________________ 19Figura 2.4 Proceso de localización CampusSpace ______________________________________________ 20Figura 2.5 Arquitectura del sistema CampusSpace [FERSCHA 2001] _______________________________ 21Figura 2.6 Descripción RDF de un miembro del staff [FERSCHA 2001] ______________________________ 21Figura 2.7 Arquitectura del sistema UbiqMuseum [CANO 2006] __________________________________ 23Figura 2.8 Información recibida en un cliente en UbiqMuseum [CANO 2006] ________________________ 24Figura 2.9 Modelo conceptual [TESOREIRO 2008]______________________________________________ 26Figura 3.1 LBS como intersección de tecnologías ______________________________________________ 36Figura 3.2 Clasificación de las técnicas globales de posicionamiento _______________________________ 37Figura 3.3 Esquema de la localización por GPS ________________________________________________ 38Figura 4.1 Diagrama de bloques del proceso de comunicación entre el cliente y el servidor _____________ 45Figura 4.2 Diagrama general de casos de uso _________________________________________________ 46Figura 4.3 Diagrama del caso de uso CU-1 Consultar tareas pendientes ____________________________ 46Figura 4.4 Diagrama de actividad del caso de uso CU-1 Consultar tareas pendientes __________________ 47Figura 4.5 Diagrama de actividad del caso de uso CU-1.2 Listado de tareas pendientes ________________ 48Figura 4.6 Diagrama del caso de uso CU-1.1 Verificar contexto ___________________________________ 49Figura 4.7 Diagrama de actividad del caso de uso CU-1.1 Verificar contexto _________________________ 50Figura 4.8 Diagrama de actividad del caso de uso CU-1.1.1 Consultar por RFID ______________________ 51Figura 4.9 Diagrama de actividad del caso de uso CU-1.1.2 Consultar por barras _____________________ 52Figura 4.10 Diagrama de actividad del caso de uso CU-1.1.3 Obtener ubicación ______________________ 54Figura 4.11 Diagrama del caso de uso CU-2 Alta de tarea _______________________________________ 55Figura 4.12 Diagrama de actividad del caso de uso CU-2 Alta de tarea _____________________________ 57Figura 4.13 Diagrama del caso de uso CU-2.1 Seleccionar tarea de guiado __________________________ 57Figura 4.14 Diagrama de actividad del caso de uso CU-2.1 Seleccionar tarea de guiado ________________ 59Figura 4.15 Diagrama del caso de uso CU-3 Completar tarea_____________________________________ 59Figura 4.16 Diagrama de actividad del caso de uso CU-3 Completar tarea __________________________ 60Figura 4.17 Diagrama del caso de uso CU-4 Cancelar tarea ______________________________________ 61Figura 4.18 Diagrama de actividad del caso de uso CU-4 Cancelar tarea ____________________________ 62Figura 4.19 Diagrama de paquetes del cliente ________________________________________________ 63Figura 4.20 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.activities ____________ 63Figura 4.21 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.interfaz _____________ 65Figura 4.22 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.codigobarras ________ 67Figura 4.23 Diagrama de secuencias para la decodificación del código de barras _____________________ 68Figura 4.24 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.conexionhttp _________ 69Figura 4.25 Diagrama de secuencias comunicación cliente/servidor por HTTP _______________________ 69Figura 4.26 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.objetos _____________ 70Figura 4.27 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.rfid ________________ 71Figura 4.28 Diagrama de secuencias para el proceso de lectura de tarjeta RFID ______________________ 71Figura 4.29 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.utilerias _____________ 72Figura 4.30 Diagrama de paquetes del servidor _______________________________________________ 73Figura 4.31 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.basedatos ___________ 74Figura 4.32 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.osgi ________________ 74Figura 4.33 Diagrama de clases del paquete mx.edu.cenidet.servidortareasosgi.objetos _______________ 75Figura 4.34 Diagrama de clases del paquete mx.edu.cenidet.servidortareasosgi.utilerias ______________ 76Figura 4.35 Diagrama de clases del paquete mx.edu.cenidet.servidortareasosgi.recursosrestlet _________ 76Figura 4.36 Diagrama de secuencias para la autenticación del usuario _____________________________ 78Figura 4.37 Diagrama de secuencias para la consulta de tareas pendientes _________________________ 80 iv
  • 12. Figura 4.38 Diagrama de secuencias para la consulta del detalle de una tarea _______________________ 82Figura 4.39 Diagrama de secuencias para la operación de completar o cancelar una tarea _____________ 84Figura 4.40 Diagrama de secuencias para la obtención de un listado de actividades disponibles para elusuario _______________________________________________________________________________ 86Figura 4.41 Diagrama de secuencias para la obtención de un listado de tareas disponibles para el usuario_ 88Figura 4.42 Diagrama de secuencias para la operación establecer una tarea como pendiente (nueva tarea) 90Figura 4.43 Diagrama de secuencias para la operación obtener la ubicación actual del dispositivo _______ 92Figura 4.44 Diagrama de secuencias para la operación de obtener un listado de ubicaciones ___________ 94Figura 4.45 Diagrama de secuencias de la tarea de guiado por RFID _______________________________ 95Figura 4.46 Diagrama de secuencias de la tarea de guiado con QRCodes ___________________________ 96Figura 4.47 Modelo físico de la base de datos________________________________________________ 100Figura 4.48 Casos de uso de la aplicación Web _______________________________________________ 102Figura 4.49 Diagrama de paquetes de la aplicación Web _______________________________________ 102Figura 4.50 Diagrama de clases paquete mx.edu.cenidet.basedatos ______________________________ 103Figura 4.51 Diagrama de clases paquete mx.edu.cenidet.xmlread ________________________________ 103Figura 5.1 Detalles tecnológicos del proyecto ________________________________________________ 107Figura 5.2 Pantalla inicial del sistema ______________________________________________________ 109Figura 5.3 Pantalla de datos erróneos ______________________________________________________ 109Figura 5.4 Diagrama de flujo del proceso de autenticación _____________________________________ 110Figura 5.5 Pantalla de Tareas Pendientes ___________________________________________________ 110Figura 5.6 Pantalla de detalles de tarea ____________________________________________________ 111Figura 5.7 Diagrama de flujo del proceso de consulta de tareas pendientes ________________________ 111Figura 5.8 Pantalla de detalles de tarea ____________________________________________________ 112Figura 5.9 Pantalla de listado de tareas con mensaje de tarea completada_________________________ 112Figura 5.10 Error en la operación _________________________________________________________ 112Figura 5.11 Diagrama de flujo del proceso de completar/cancelar una tarea _______________________ 113Figura 5.12 Pantallas involucradas en el proceso de alta de tarea ________________________________ 114Figura 5.13 Diagrama de flujo de alta de nueva tarea _________________________________________ 115Figura 5.14 Diagrama de flujo del proceso de guiado por RFID __________________________________ 116Figura 5.15 Pantallas involucradas en el proceso de guiado por RFID _____________________________ 117Figura 5.16 Diagrama de flujo del proceso de guiado por QRCodes _______________________________ 118Figura 5.17 Pantallas involucradas en el proceso de guiado por QRCodes __________________________ 119Figura 5.18 Pantalla principal de la aplicación Web ___________________________________________ 120Figura 5.19 Pantallas del módulo de administración de usuarios _________________________________ 121Figura 5.20 Pantallas del módulo de administración de recursos _________________________________ 122Figura 5.21 Pantalla de alta de campus ____________________________________________________ 123Figura 5.22 Pantalla de captura de ubicaciones ______________________________________________ 124Figura 5.23 Pantalla de alta de tareas _____________________________________________________ 125Figura 5.24 Pantalla de activación de tarea de usuarios ________________________________________ 125 v
  • 13. List ado de tablasTabla 1 Comparativa de los trabajos relacionados con el proyecto de tesis __________________________ 27Tabla 2 Comparativa de los servicios de localización ___________________________________________ 29Tabla 3 Descripción del caso de uso CU-1 Consultar tareas pendientes _____________________________ 46Tabla 4 Descripción del caso de uso CU-1.2 Listado de tareas pendientes ___________________________ 47Tabla 5 Descripción del caso de uso CU-1.1 Verificar contexto ____________________________________ 49Tabla 6 Descripción del caso de uso CU-1.1.1 Consultar por RFID __________________________________ 50Tabla 7 Descripción del caso de uso CU-1.1.2 Consultar por Barras ________________________________ 51Tabla 8 Descripción del caso de uso CU-1.1.3 Obtener ubicación __________________________________ 52Tabla 9 Descripción del caso de uso CU-2 Alta de tarea _________________________________________ 55Tabla 10 Descripción del caso de uso CU-2.1 Seleccionar tarea de guiado ___________________________ 58Tabla 11 Descripción del caso de uso CU-3 Completar tarea _____________________________________ 59Tabla 12 Descripción del caso de uso CU-4 Cancelar tarea _______________________________________ 61Tabla 13 Caso de prueba T-Guide-001-001 __________________________________________________ 129Tabla 14 Caso de prueba T-Guide-001-002 __________________________________________________ 130Tabla 15 Caso de prueba T-Guide-001-003 __________________________________________________ 131Tabla 16 Caso de prueba T-Guide-002-001 __________________________________________________ 132Tabla 17 Caso de prueba T-Guide-002-002 __________________________________________________ 133Tabla 18 Caso de prueba T-Guide-003-001 __________________________________________________ 134Tabla 19 Caso de prueba T-Guide-003-002 __________________________________________________ 135Tabla 20 Caso de prueba T-Guide-003-003 __________________________________________________ 136Tabla 21 Caso de prueba T-Guide-004-001 __________________________________________________ 138Tabla 22 Caso de prueba T-Guide-004-002 __________________________________________________ 139Tabla 23 Caso de prueba T-Guide-004-003 __________________________________________________ 140Tabla 24 Caso de prueba T-Guide-005-001 __________________________________________________ 142Tabla 25 Caso de prueba T-Guide-005-002 __________________________________________________ 144Tabla 26 Caso de prueba T-Guide-005-003 __________________________________________________ 147Tabla 27 Caso de prueba T-Guide-005-004 __________________________________________________ 152Tabla 28 Caso de prueba T-Guide-005-005 __________________________________________________ 154Tabla 29 Resumen de los casos de prueba de la plataforma propuesta ____________________________ 156Tabla 30 Tareas a desarrollar para las pruebas ______________________________________________ 172Tabla 31 Tecnología física utilizada ________________________________________________________ 173Tabla 32 Tecnología de programación utilizada ______________________________________________ 173Tabla 33 Características a probar de la aplicación ____________________________________________ 174 vi
  • 14. Glosario de términos y siglasGPRS General Packet Radio Service. Servicio General de Paquetes por Radio. Es una tecnología digital de telefonía móvil. Es considerada la generación 2.5, entre la segunda generación (GSM) y la tercera (UMTS). Proporciona altas velocidades de transferencia de datos (especialmente útil para conectar a Internet) y se utiliza en las redes GSM.GPS Global Positioning System. Sistema de Posicionamiento Global. Sistema Global de Navegación por Satélite que permite determinar en todo el mundo la posición de un objeto.GSM Global System for Mobile communications. Sistema Global para las Comunicaciones Móviles. Formalmente conocida como “Group Special Mobile” (GSM, Grupo Especial Móvil) es un estándar mundial para teléfonos móviles digitales.HTTP HyperText Transfer Protocol. Protocolo de transferencia de hipertexto. Protocolo desarrollado por la W3C para la transferencia de información a través de la Web. Es un protocolo sin estado –no guarda información sobre conexiones anteriores- y está basado en el modelo de cliente- servidor.IEEE Institute of Electrical and Electronics Engineers. Instituto de Ingenieros Eléctricos y Electrónicos, una asociación técnicoprofesional mundial dedicada a la estandarización, entre otras cosas. Es la mayor asociación internacional sin fines de lucro formada por profesionales de las nuevas tecnologías, como ingenieros de telecomunicaciones, ingenieros electrónicos, Ingenieros en informática e Ingenieros en computación.LBS Location Based Services. Los Servicios Basados en Localización buscan ofrecer un servicio personalizado a los usuarios basado en información de ubicación geográfica de estos.OSGI Open Services Gateway Initiative. Fue creado en Marzo de 1999. Su objetivo es definir las especificaciones abiertas de software que permita diseñar plataformas compatibles que puedan proporcionar múltiples servicios. Fue pensado principalmente para su aplicación en redes domésticas y por ende en la llamada Domótica o informatización del hogar.PostgreSQL Servidor de base de datos libre desarrollado en su primera versión con el nombre de Ingres, proyecto desarrollado en la universidad de Berkeley. Considerado como el referente a los sistemas manejadores de base de datos libres.QRCODES QRCodes. Es un sistema para almacenar información en una matriz de vii
  • 15. puntos o un código de barras bidimensional creado por la compañía japonesa Denso-Wave en 1994; se caracterizan por los tres cuadrados que se encuentran en las esquinas y que permiten detectar la posición del código al lector. La sigla "QR" se derivó de la frase inglesa "Quick Response" pues el creador aspiraba a que el código permitiera que su contenido se leyera a alta velocidad. Los códigos QR son muy comunes en Japón y de hecho son el código bidimensional más popular en ese país.RFID Radio Frequency Identification. Es un sistema de almacenamiento y recuperación de datos remoto que usa dispositivos denominados etiquetas, transpondedores o tags RFID. El propósito fundamental de la tecnología RFID es transmitir la identidad de un objeto (similar a un número de serie único) mediante ondas de radio. Las tecnologías RFID se agrupan dentro de las denominadas Auto ID (automatic identification, o identificación automática).SMS Short Message Service. Servicio de mensajería corto. Es un servicio disponible en los teléfonos móviles que permite el envío de mensajes cortos entre teléfonos móviles, teléfonos fijos y otros dispositivos de mano.TDMA Time Division Multiple Access. Tecnología que distribuye las unidades de información en alternantes slots de tiempo proveyendo acceso múltiple a un reducido número de frecuencias. TDMA es una tecnología inalámbrica de segunda generación que brinda servicios de alta calidad de voz y datos. Divide un único canal de frecuencia de radio en seis ranuras de tiempo. A cada persona que hace una llamada se le asigna una ranura de tiempo específica para la transmisión, lo que hace posible que varios usuarios utilicen un mismo canal simultáneamente sin interferir entre sí.WIFI Wi-Fi es un sistema de envío de datos sobre redes computacionales que utiliza ondas de radio en lugar de cables, además es una marca de la Wi-Fi Alliance (anteriormente la WECA: Wireless Ethernet Compatibility Alliance), la organización comercial que adopta, prueba y certifica que los equipos cumplen los estándares 802.11.WLAN Wireless Local Area Network. Es un sistema de comunicación de datos inalámbrico flexible, muy utilizado como alternativa a las redes LAN cableadas o como extensión de éstas. Utiliza tecnología de radiofrecuencia que permite mayor movilidad a los usuarios al minimizar las conexiones cableadas. Las WLAN van adquiriendo importancia en muchos campos, como almacenes o para manufactura, en los que se transmite la información en tiempo real a una terminal central. También son muy populares en los hogares para compartir el acceso a Internet entre varias computadoras. viii
  • 16. 1 Capítulo 1 Introducción Capítulo 1 IntroducciónEn este capítulo se muestran los antecedentes que existen sobre el trabajo detesis desarrollado, el problema a abordar junto con la motivación y justificación deldesarrollo de esta tesis. Por último se muestra la manera en que se encuentraestructurado el documento.
  • 17. Capítulo 1 Introducción1.1 IntroducciónLa localización de usuarios en el interior de edificios multinivel es un área deoportunidad en donde se puede potenciar la utilización de teléfonos celulares odispositivos móviles. Estos servicios de localización en interiores permitendesarrollar innumerables aplicaciones gracias a la posibilidad de ubicar en tiemporeal a objetos o personas. Algunos de los principales servicios están relacionadoscon el control de acceso a instalaciones, la seguridad en red basada en lalocalización física de los usuarios, la gestión de las instalaciones que permite elahorro energético, el servicio de emergencia y estadísticas.Sin embargo, las aplicaciones de mayor interés comercial provienen delposicionamiento contextual (context-aware), las cuales requieren aplicaciones quereaccionan ante los cambios de contexto de los usuarios, identificando su posicióny los recursos cercanos a él. Esto significa que el dispositivo del usuario estaráconsiente de la proximidad de objetos, personas y obviamente de su ubicación enel interior de un edificio que puede ser multinivel; esta capacidad de concienciacontextual, abre la puerta para una gran cantidad de nuevos y novedososservicios. La información y servicios que necesita el usuario se le pueden ofreceren el momento y lugar que los requiere. De este modo el espacio de trabajo de losusuarios puede ser adaptado, se permite el acceso a publicidad relevante y seofrece un guiado para que el usuario complete sus tareas del día a día, entre otrasmuchas posibles aplicaciones.Diversas circunstancias han impulsado el desarrollo de los sistemas deposicionamiento. Ejemplo de ello, en la mayor economía del mundo (EEUU) estastecnologías cobraron especial interés a raíz de un mandato legislativo promulgadopor la Comisión Federal de Comunicaciones (Federal CommunicationsCommission, FCC). La FCC decidió hace seis años que en diciembre de 2005 lasoperadoras de telefonía tendrían que ser capaces de localizar automáticamente acualquier persona que efectuara una llamada de emergencia con una precisión de50 a 100 metros.Con estas condiciones de contorno, se hace evidente ver escenarios en los quelos usuarios deambulan por las distintas redes, de forma que inician conexionesen una tecnología concreta y, a lo largo de las mismas, se producen traspasos aotras, en virtud de atributos relativos a la calidad de servicio, costo u otrasconsideraciones que pueden emanar tanto desde la perspectiva de los usuarioscomo del propio operador.La figura 1.1 muestra un pequeño bosquejo de lo siguiente: los dispositivoscelulares actuales cuentan con un gran número de tecnologías de conectividad, alas cuales pueden aplicarse técnicas para localizarlos y aprovechar todos estosdispositivos que traen inmersos los celulares hoy en día. 3
  • 18. Capítulo 1 Introducción Figura 1.1 Tecnologías inalámbricas1.2 Antecedentes del proyectoEn el CENIDET, específicamente en el área de sistemas distribuidos, se hanrealizado trabajos relacionados con el cómputo móvil. Los trabajos centran suatención en diversas problemáticas que existen en esta área -problemas devisualización en dispositivos móviles, interoperabilidad entre plataformas,problemas de conexión- y principalmente en el desarrollo tecnológico que aportanestas investigaciones. Los antecedentes inmediatos de este trabajo son lossiguientes.1.2.1 API SMS para el Procesamiento de Consultas Georeferenciadas / No Georeferenciadas [GUERRA 2007]En esta tesis se desarrolló una API que permite el desarrollo de aplicaciones LBSpara dispositivos móviles utilizando el sistema GPS como técnica deposicionamiento y el Servicio Mensajería Corta (SMS por sus siglas en inglés)como medio de transporte.En esta tesis se desarrollaron un conjunto de funciones que permiten implementaraplicaciones en dispositivos móviles para procesar consultas georeferenciadas yno georeferenciadas utilizando mensajería SMS.1.2.2 Gateway SMS Pull para servicios basados en localización con una arquitectura de servicios Web [QUIÑONEZ 2007]En esta tesis se implementó la arquitectura de una plataforma para proporcionarservicios basados en localización a través de mensajería SMS, utilizando laubicación del dispositivo, expresada en coordenadas geográficas para ubicar lospuntos de interés que se encuentran cerca, por medio de una base de datosespacial y tecnologías de los servicios Web para resolver información externabasada en localización.Para ello se desarrolló un gateway –pasarela- que permite el procesamiento de losmensajes SMS, los procesa y retorna información – contenida localmente en una 4
  • 19. Capítulo 1 Introducciónbase de datos espacial o externa por tecnologías de servicios Web- acorde con laubicación del dispositivo móvil. Se proporcionan servicios basados en localizaciónsin la restricción de la red celular sobre la que opera el dispositivo y con lasventajas que proporcionan las tecnologías de los servicios Web a través delreferente de la telefonía celular, la mensajería de SMS.La particularidad de estas tesis es que únicamente enfocaban sus esfuerzos alposicionamiento GPS.1.3 Descripción del problemaEl avance y la creciente difusión de las comunicaciones inalámbricas, la evoluciónde las tecnologías de sensores y localización, y de las tecnologías de lacomputación, permiten pensar en una nueva forma de interactuar con el medioque nos rodea, que se ha venido a definir como la conformación de un espacio―inteligente‖. En Europa existe el concepto de Inteligencia Ambiental (AmI),promovido especialmente por la Comisión Europea. Según [CASAR 2007] planteaun escenario a medio o largo plazo en el que los ciudadanos compran, trabajan odescansan rodeados de interfaces inteligentes soportadas por tecnologías decomputación y de comunicación ubicuas y transparentes.Los dispositivos modernos cuentan con una gran cantidad de interfacesinalámbricas (IEEE 802.11 a/b/g, IEEE 802.15, GPS, GSM, WiMax, RFID) quepermiten aplicar técnicas de localización. La tendencia en tecnologías móviles esla convergencia hacia varias tecnologías. Existen gran diversidad de técnicas delocalización que funcionan bien para ciertos escenarios, algunas son buenas parainteriores (indoor), como las utilizadas con redes IEEE 802.11b/g (WiFi), IEEE802.15.1 (Bluetooth) y IEEE 802.15.4 (RFID), y otras en exteriores (outdoor), comoGPS y técnicas en GSM.GPS es una tecnología de posicionamiento muy buena en exteriores, sin embargopierde su precisión debido a obstáculos como paredes y techos, y el error quepuede presentar es inadmisible. Es por ello que se necesita contar con técnicas delocalización heterogéneas que sean conscientes de su contexto y de este modoaprovechen todas las opciones de conectividad inalámbrica presentes en eldispositivo que se quiere localizar, para poder ubicar a un dispositivo de unamanera exacta en cualquier lugar y en cualquier momento (siempre y cuando hayaconectividad GSM).La problemática de la localización en interiores ha sido objeto de un intensoestudio e investigación durante los últimos años. Se han propuesto diversastécnicas de localización en WiFi, Bluetooth, RFID e infrarrojos. Hasta ahora,ninguna de las soluciones propuestas ha conseguido el éxito que han alcanzadolos sistemas de localización y navegación análogos empleados en exteriores,sobre todo el GPS. Las razones de este fracaso han sido técnicas y sobre todoeconómicas: técnicas porque la localización en interiores plantea retos 5
  • 20. Capítulo 1 Introduccióntecnológicos muy superiores a los de la localización en espacios abiertos yeconómicas porque la mayor parte de los sistemas propuestos utilizan grancantidad de infraestructuras fijas (sensores, puntos de control, estaciones base,etc.), lo que hace aumentar mucho el costo. Además el error en interiores tieneque ser muy bajo ya que un error grande significaría un error inadmisible en laubicación del usuario. Cabe destacar que si no se utilizan técnicas deoptimización, la precisión es inversamente proporcional al alcance de latecnología, es decir, a mayor alcance menor precisión y viceversa.Actualmente una de las tecnologías que está siendo muy utilizada (poco en elámbito de la localización) es RFID, sobre todo en la unión europea y puedeaplicarse en la automatización de las actividades del día a día, mediante laasociación de objetos del mundo real a los sistemas de información. Con laaplicación de estas tecnologías en el ámbito de los teléfonos móviles, los serviciosbasados en localización (por sus siglas en inglés LBS-Location Based Services)pueden verse enriquecidos con mayor información de contexto y con una mayorprecisión de localización.La mayoría de los dispositivos actuales cuentan con una cámara fotográficaintegrada, la cual puede aprovecharse para decodificar QRCodes que esténasociados a una ubicación y de este modo obtener la posición del usuario cuandolo desee.1.4 Objetivos del proyectoEl objetivo general del proyecto de tesis es el siguiente:―Desarrollar servicios conscientes del contexto que permitan la localización dedispositivos celulares a través tecnologías de posicionamiento heterogéneas(GPS, identificación de células, WiFi, Bluetooth, RFID y QRCodes) mediante laconstante verificación del contexto del usuario‖.Para el cumplimiento del objetivo general, se han desarrollado los objetivosespecíficos que se describen a continuación: i. Realizar una prueba de concepto, implementación y modelo mediante un sistema de localización consciente del contexto. ii. Identificación y análisis de limitaciones tecnológicas y de servicio para estas familias de aplicaciones con tecnologías emergentes de localización, gestión de comunicaciones y de intercambio de contenidos, que permitirán subsanar progresivamente las deficiencias de servicio detectadas. iii. Contribuir al desarrollo de los servicios móviles y ubicuos, estudiando y analizando las tecnologías de comunicaciones, su interoperabilidad, aplicaciones y limitaciones. iv. Ampliar el uso de la inteligencia en el acceso a la información, mediante el desarrollo de un software que seleccione la información relevante en el 6
  • 21. Capítulo 1 Introducción momento preciso (conciencia del contexto), teniendo en cuenta la ubicación del usuario. v. Hacer uso de la metodología orientada a componentes con el fin de hacer reutilizable la aplicación.1.5 Justificación y beneficios del proyectoEn los últimos años los servicios de localización en redes inalámbricas se estánconvirtiendo en un servicio clave para todo operador. La razón del crecienteinterés en este tipo de servicios reside en el hecho de que la información delocalización constituye un servicio en sí mismo (p. ej. un usuario desea conocer suposición en un determinado instante), al tiempo que dicha información puedeemplearse para la construcción de servicios de valor añadido en los que el usuariono solicite la posición de forma explícita, pero el servicio solicitado sí requiera deella para llevarse a cabo (p. ej. guiado, farmacia de guardia más cercana, etc.)[DRANE 1998]. Además, las exigencias establecidas por parte de diversosreguladores (p. ej. FCC, UE, etc.) hacen que los servicios de localización esténcada vez más presentes en las redes celulares públicas actuales [ESCALONA2007].La disponibilidad de este tipo de servicios puede ser aprovechada por losoperadores de red más allá de la percepción económica que se espera de ellos.De esta forma, la información de localización de los usuarios de la red puedeemplearse para optimizar el funcionamiento de la misma [LEE 2001], empleandopor ejemplo sistemas inteligentes de buscapersonas, modelos de traspasobasados en la localización del usuario y la previsión de sus movimientos, lareserva de recursos en función del patrón de movimiento de los distintos usuariosde la celda, etc.La problemática de la localización en interiores ha sido objeto de un intensoestudio e investigación durante los últimos años. En varios proyectos se describecomo han ido evolucionando los sistemas basados en localización y pasaron deser reactivos, en donde el usuario solicitaba referencias según su ubicación a serproactivos en donde se verifica el contexto para ofrecer servicios al usuario.Hasta ahora, ninguna de las soluciones propuestas ha conseguido el éxito quehan alcanzado los sistemas de localización y navegación análogos empleados conmucho éxito en entornos urbanos, como lo es el sistema de posicionamientoglobal (GPS por sus siglas en inglés) o los sistemas híbridos empleados por lascompañías de telefonía celular (AGPS), los cuales no son adecuados paraidentificar la ubicación de un usuario que se encuentra dentro de un edificio.En resumen, se pueden identificar dos factores que han determinado el fracaso deestas técnicas de localización al interior de edificios, uno es técnico y otroeconómico, es decir, el factor técnico se enfrenta a retos tecnológicos muysuperiores a los de la localización en espacios abiertos, las exigencias de 7
  • 22. Capítulo 1 Introducciónprecisión en este tipo de sistemas incluyen un error medio menor a 2 metros; porotro lado, el factor económico porque la mayor parte de los sistemas propuestosen los trabajos relacionados utilizan gran cantidad de infraestructura fija (sensores,puntos de control, estaciones base, etc.), lo que hace aumentar mucho el costo deestos sistemas de localización.Desarrollar una técnica que sea viable y factible tanto económica comotécnicamente, y además ofrezca una gran precisión de ubicación significa poderofrecer una gran cantidad de servicios a los usuarios dependiendo de su contextoy de su ubicación.1.6 Alcances y limitaciones del proyectoEl proyecto puede volverse muy amplio debido a la gran diversidad de tecnologíasy, para cada una de ellas una variedad de técnicas de localización, si a esto leagregamos la convergencia de estas técnicas, resulta un problema sumamentecomplejo, es por ello que hemos definido las siguientes consideraciones para elproyecto: Para el desarrollo del proyecto partiremos del hecho de que el entorno en el que se quiere localizar al dispositivo tiene al menos cobertura GSM. Se trabajará en técnicas de posicionamiento utilizando RFID y QRCodes. Trabajará con tecnología GSM en los rangos de frecuencia 850/1900 y 900/1800. El medio de transmisión será HTTP. Los dispositivos celulares que se utilizarán son dispositivos que soporten el sistema operativo Android y que tengan conectividad WiFi.El proyecto no contemplará lo siguiente: Redes WiFi para el estándar 802.11abg, Redes Bluetooth 802.15. Se limitará a algunos dispositivos celulares, no para todas las marcas y modelos. No se trabajará con redes 802.16 (Wi-Max) debido a que no se tiene la infraestructura para hacerlo.1.7 Organización del documentoEl documento se encuentra organizado en 6 capítulos, los cuales presentan lasiguiente información: i. Capítulo 2: Estado del arte. Se presentan trabajos relacionados con el proyecto de tesis, desarrollados recientemente. 8
  • 23. Capítulo 1 Introducción ii. Capítulo 3: Marco Teórico. Se presentan los fundamentos teóricos de las diferentes tecnologías usadas y su forma de operación. Asimismo, se describen los conceptos utilizados en el desarrollo del documento. iii. Capítulo 4: Análisis y Diseño. Se muestran los casos de uso, escenarios, diagramas de actividad, clases y secuencia que representan el análisis y diseño de las aplicaciones que resultan del proyecto. iv. Capítulo 5: Implementación. Se presenta la implementación de la arquitectura y la forma en que colaboran los diferentes módulos que la conforman. Se describen las interfaces de usuario desarrolladas para su manejo y se menciona la relación entre cada uno de los módulos de las aplicaciones. v. Capítulo 6: Pruebas. Se presentan los resultados de las pruebas. vi. Capítulo 7: Conclusiones. Se presentan las aportaciones de la tesis, los trabajos futuros y las publicaciones realizadas durante el desarrollo de la tesis.vii. Anexo A: Definición de las interfaces de usuario. Se muestran las interfaces de usuario desarrolladas para el dispositivo celular con el sistema operativo Android.viii. Anexo B: Plan de pruebas. Describe el plan de pruebas basado en el IEEE std 829. 9
  • 24. 2 Capítulo 2 Estado del arte Capítulo 2 Estado del arteEn este capítulo se describen los trabajos relacionados y estado del arte queinfluyen para el desarrollo del presente trabajo.
  • 25. Capítulo 2 Estado del ArteA continuación se describen y se evalúan algunos artículos, relacionados con eltema de tesis, extraídos en su mayoría de memorias de congresos recientes(2006-2008) de la IEEE.2.1 Simple Location-based Application Development for Mobile Phones [TITICA 2007]Se da una descripción general acerca de algunas de los componentes másimportantes y servicios necesarios para construir aplicaciones basadas enlocalización. Se enfatiza que una de las tareas más importantes para realizar unsistema basado en localización, es la determinación de la posición de lasterminales móviles, es por esto que se centra en la descripción de técnicas deposicionamiento GSM. Describe las siguientes: Tiempo de llegada (Time of Arrival, TOA)Esta técnica se basa en la medición del tiempo de llegada de una señaltransmitida por un terminal móvil a diferentes estaciones base. Para efectuar elcálculo, una posibilidad es medir el tiempo de ida y vuelta de la señal. De estamanera la distancia recorrida por la señal se calcula como producto del tiempoempleado en llegar a la BTS (estación base) y la velocidad de la luz.Mediante TOA es necesario efectuar medidas al menos respecto a tres estacionesbase para obtener una precisión aceptable en el cálculo de la posición de unterminal. Las medidas permiten trazar circunferencias con centro en cada una delas BTS, dando su intersección como resultado el punto donde se encuentra elterminal que se desea localizar. Posteriormente se transmiten al servidor delocalización, que realiza los cálculos y corrige los errores utilizando métodosmatemáticos. Estos errores pueden deberse al tiempo de procesado en elterminal, el cual depende del fabricante y también de la situación de carga deldispositivo en un momento determinado. Otra desventaja que presenta estatécnica es que la ausencia de visión directa entre el terminal y la estación basepuede causar un error que desemboque en una falsa estimación. Cell IDEsta técnica de localización (Cell Global Identity-CGI) está disponible sin realizarninguna inversión ni modificación en red o terminal, pues la posición se obtienemediante la identidad de la celda en la que se encuentra el terminal móvil. Laprecisión de este método puede ir de algunos cientos de metros en áreas urbanashasta 32 kilómetros en áreas rurales. Ángulo de llegada (Angle of Arrival, AOA o Direction of Arrival, DOA)Este método utiliza antenas multi-arreglo situadas en la estación base paradeterminar el ángulo de la señal incidente. Si un terminal que transmite una señal 13
  • 26. Capítulo 2 Estado del Arteestá en la línea de vista directa (LOS, Line Of Sight), la antena multi-arreglo puededeterminar de qué dirección viene la señal. Para conocer la posición del terminales necesaria al menos una segunda estimación procedente de otra estación basecon la misma tecnología que la primera. La segunda estación base localizará alterminal y comparará sus datos con los de la primera estación para despuéscalcular la posición del usuario mediante trigonometría. En principio sólo sonnecesarias dos estaciones base para estimar la posición del terminal móvil, poreste motivo AOA resulta efectiva en entornos rurales, donde es complicadodisponer de visión de tres estaciones base al mismo tiempo. Pero en condicionesadversas (entornos urbanos) suele ser imprescindible emplear más estaciones conel fin de obtener mayor precisión. Figura 2.1 Sistema de localización por ángulo de llegadaLos sistemas AOA deben diseñarse para tener en cuenta señales multitrayecto,aquéllas que son consecuencia de una reflexión y que por tanto llegan a la antenacon un ángulo erróneo. Por otra parte, la instalación y alineación de las antenasmulti-arreglo en las estaciones base es un proceso complicado y caro. Además, silas antenas sufren una leve modificación en su orientación debido al viento o lastormentas se pueden producir errores considerables en la estimación, ya que éstase realiza en base a ángulos absolutos respecto de la antena. Diferencia de tiempo de observado mejorado (Enhanced Observed Time Difference, E-OTD)La técnica E-OTD opera sobre redes GSM y GPRS e incluye nueva tecnologíatanto en el terminal móvil como en la red. Siendo la solución de red similar a l autilizada en TDOA, el sistema necesita que se instalen unidades de medida deposición (Location Measurement Units - LMU) a modo de balizas de referencia enpuntos dispersos geográficamente. La densidad de LMUs determinará la precisióndel sistema, y por ello normalmente es necesario instalar en toda la red una LMUpor cada una o dos estaciones base. Estos receptores y los terminales móvileshabilitados con software E-OTD realizan medidas de las señales procedentes detres o más estaciones base periódicamente. Las diferencias temporales de llegadade la señal a los dos puntos (LMU y terminal) se combinan para producir líneashiperbólicas que se intersecan en el lugar donde está el terminal móvil, ofreciendode esta manera localización en dos dimensiones. 14
  • 27. Capítulo 2 Estado del ArteEn E-OTD el terminal móvil mide la diferencia de tiempo de llegada de las ráfagasde pares cercanos de estaciones base. Si estas estaciones no están sincronizadas(como es el caso de las redes GSM), la red debe evaluar el desfase entre ellaspara poder estimar las diferencias de tiempo relativas (Relative Time Difference -RTD). Con el fin de obtener un resultado preciso, se necesitan medidas de ladiferencia de tiempo observado (Observed Time Difference) y RTD de tres paresde estaciones base separadas en el espacio. Una vez obtenidas las medidas, elcálculo de la posición puede estar asistido por red, si el terminal móvil mide laseñal de OTD y la red le proporciona la información de las coordenadas de lasBTS y valores RTD, o asistido por el terminal, en cuyo caso es el terminal el quemide la OTD y envía la medida a la red que calcula la ubicación. En conclusión, laposición del terminal móvil se obtiene mediante triangulación a partir de:  Las coordenadas de las BTSs.  El tiempo de llegada de las ráfagas de cada BTS.  Las diferencias de tiempo entre las BTSs.Desventajas Únicamente se enfoca a la localización utilizando técnicas en GSM, por lo que el error de posicionamiento es inadmisible para interiores (más de 50 metros). No se maneja la consciencia de contexto. No define otro tipo de tareas.2.2 RADAR: An In-Building RF-based User Location and Tracking System [RADAR 2000]RADAR es un sistema de localización en WLAN, desarrollado por investigadoresde Microsoft, el cual opera mediante la grabación y procesamiento de informaciónde la potencia de señal recibida de múltiples AP (Utiliza potencia de señalrecibida). Este sistema combina mediciones empíricas con el modelado depropagación de la señal para determinar la localización de un dispositivo.Las fases de la metodología son las siguientes:Fase de recolección de datosSe registra información acerca de la señal de radio en función de la posición delusuario, esto se realizó de la siguiente manera: Se utiliza un software llamado WaveLAN para monitorear los paquetes beacom enviados por los AP. Se diseña un mapa del piso de un edificio (ver figura 2.2). 15
  • 28. Capítulo 2 Estado del Arte Figura 2.2Plano utilizado sistema RADAR [RADAR 2000] Se realiza un recorrido utilizando un dispositivo inalámbrico y el software antes mencionado, en los puntos negros de la figura 3 se tomaron varias medidas de la potencia de la señal de los diversos AP provistas por el software WaveLAN, cabe destacar que se toman medidas colocando al usuario con el dispositivo inalámbrico volteando hacia los 4 puntos cardinales (debido a que el cuerpo puede obstruir la señal de un AP, lo que ocasionaría recibir un dato de potencia de señal más bajo). Posteriormente un usuario manualmente define su posición dando clic sobre un mapa. Después los datos recolectados se almacenan en una base de datos como tuplas formadas de la siguiente manera: Posición x Posición y Dirección (norte, sur..)i Potencia señaliFase de localización El dispositivo captura la potencia de la señal recibida en su posición proveniente de los AP que tiene a la vista y utilizando la fórmula de la distancia euclidiana: D = , donde si es la potencia de señal detectada y s i’ es la potencia de señal obtenida por el usuario, dados estos valores y por medio de la fórmula se obtiene la posición x y y que minimice a D según las potencias recibidas.Desventajas No contempla otro tipo de posicionamiento. No maneja consciencia de contexto ni auto-identificación. El grado de precisión de la ubicación está en función de la cantidad de AP que se tengan a la vista, a mayor número de AP mayor será la precisión, por lo que se pueden tener errores inadmisibles cuando sólo se está en la cobertura de un AP. 16
  • 29. Capítulo 2 Estado del Arte2.3 The Horus WL AN location determination system [HORUS 2004]Investigadores de la Universidad de Maryland presentan Horus, el cual es unsistema de determinación de la localización basado en RF (radio frecuencia). Elsistema utiliza la longitud de la señal observada por la transmisión de paquetestransmitidos por los AP para inferir la localización del usuario. Utiliza una técnicade mapeo de radio basado en la probabilidad, además utiliza clúster para reducirlos requerimientos computacionales y de procesamiento.Las fases de la metodología son las siguientes:Fase de entrenamiento fuera de línea1. Se construye el mapa de radio, clúster de localizaciones del mapa de radio, el cual almacena la distribución de la longitud de la señal recibida de cada AP para cada ejemplo de localización.2. Almacena los datos obtenidos del mapeo en forma de tuplas compuestas como sigue: x y ss P(x) Donde: x y y representan las coordenadas dentro del plano del piso del edificio. ss es la potencia de señal recibida y P(x) es la probabilidad de que un dispositivo esté en las coordenadas (x, y) con potencia recibida ss. Para obtener P(x) sacaron alrededor de 300 muestras en cada uno de los puntos de ejemplo.3. Posteriormente se crean clúster o agrupaciones según los puntos de localización en el mapa del piso, con la finalidad de minimizar la carga computacional al momento de la fase de determinación de la localización del dispositivo.Fase de determinación de localización en línea1. Se obtiene un vector compuesto de las potencias de señal y las direcciones MAC de los AP de los cuales se recibe señal.2. Para el AP con mayor señal recibida se busca encontrar la localización (x, y) que maximice la probabilidad P(x).3. Si la diferencia entre la P(x) mayor y la segunda mayor es considerablemente alta se toma ese punto como la localización del dispositivo, en caso contrario se repite el paso 2 tomando en cuenta la potencia de señal del siguiente AP. 17
  • 30. Capítulo 2 Estado del ArteDesventajas Al utilizar técnicas probabilísticas para la obtención del mapa de radio es más preciso que los que utilizan técnicas determinísticas en WLAN. No contempla otro tipo de posicionamiento. No maneja la consciencia del contexto ni auto-identificación. El grado de precisión de la ubicación está en función de la cantidad de AP que se tengan a la vista, a mayor número de AP mayor será la precisión, por lo que se pueden tener errores inadmisibles cuando sólo se está en la cobertura de un AP.2.4 CAALIX Complete Ambient Assisted Living Experiment [CAALIX 2007]Es un proyecto concluido en diciembre de 2008 en el cual se desarrolla undispositivo ligero capaz de medir los signos vitales específicos de los ancianos,detectando fallas y comunicando automáticamente en tiempo real a suscuidadores en caso de emergencia, esto lo hace en interiores o en exteriores.Los objetivos primordiales de este proyecto son los siguientes:1. Identificar los signos vitales y patrones más importantes en la determinación de probables estados críticos de la salud de un anciano.2. Desarrollar un dispositivo electrónico habilitado para medir los signos vitales y detectar recaídas en las personas ancianas en un ambiente domestico y en exteriores. El aparato tiene un sistema de geolocalización, de modo que el sistema de monitoreo esté habilitado para conocer la posición del anciano en caso de emergencia.3. Permitir el monitoreo seguro de los individuos organizados en grupos dirigidos por un cuidador, quien decidirá si comunicar los eventos identificados mediante el sistema a un servicio de emergencia.4. Crear un servicio de tele-asistencia social que pueda ser operado fácilmente por los usuarios.Cuenta con tres áreas principales de desarrollo: El sistema de monitoreo de roaming. Su intención es monitorear discretamente a la persona mayor mientras lleva a cabo sus actividades diarias en forma independiente, tanto en su casa como en el exterior. Se medirán varios signos vitales o recaídas y automáticamente se enviarán junto con su posición geográfica al servicio central de cuidado en caso de emergencia, de este modo una unidad de rescate puede ser despachada a tiempo. 18
  • 31. Capítulo 2 Estado del Arte El sistema de monitoreo del hogar. Su intención es extender el monitoreo en el ambiente del hogar, integra otros dispositivos y sensores; el soporte de video comunicación y VoIP. El sistema central de monitoreo servicio de cuidado. Recibe las alertas de las personas mayores suscritas. El cuidador evalúa la situación de una persona de acuerdo a los resultados recibidos y en caso necesario se comunica al servicio de emergencia. Figura 2.3 Arquitectura proyecto CAALIX [CAALIX 2007]Desventajas Únicamente utiliza el GPS como técnica de localización, esto significa que no se puede localizar a la persona en interiores que no sean su hogar, por ejemplo un centro comercial o un campus donde hay muchos edificios y no hay conectividad GPS. En el interior de su hogar se tiene que desplegar un gran sistema de monitoreo vía circuito cerrado para identificar la posición de la persona, esto lo hace muy costoso. La posición la envía únicamente con transmisión de datos GPRS, esta cobertura es menor a la cobertura utilizada por el GSM, si no hay GPRS no puede enviar su localización, aunque tenga cobertura GPS. 19
  • 32. Capítulo 2 Estado del Arte No maneja consciencia del contexto ni auto-identificación.2.5 Location Awareness in Community Wireless LANs [FERSCHA 2001]En este proyecto, llamado CampusSpace, se propone utilizar las capacidades deposicionamiento de las técnicas en redes 802.11 (WiFi) mediante la integración delas tecnologías RFID. Para lo anterior desarrollaron un Framework, el cual permitede forma transparente recolectar e interpretar información de la posición demóviles en coberturas de señales 802.11 y del mismo modo recolecta informaciónmapeada cartográficamente en etiquetas RFID.Proceso de determinación de posiciónEl proceso que siguen consta de dos fases hasta antes de llegar a ladeterminación de la posición, ver figura 2.4. Recolección de Recolección de Determinación de la información proximidad espacial posición geográfica Figura 2.4 Proceso de localización CampusSpaceRecolección de la información geográficaEn este punto se recolecta la potencia de señal recibida en la cobertura de losdispositivos cliente registrados en los AP. Para la realización de las pruebas setrabaja con el estándar 802.11b, además se considera la aparición de no más detres AP para evitar la colisión de paquetes.Como técnica de posicionamiento WLAN se utiliza la potencia de la señal recibidaRSS, la cual se ve afectada por paredes de concreto, objetos de metal y personas,entre otros.Recolección de proximidad espacialPara realizar este proceso se hace uso de la tecnología RFID, para ello se utilizantarjetas RFID pasivas. Los lectores RFID se integraron dentro de los dispositivoscomo un hardware PCMCIA mismo que permite, por un lado la conexión medianteWiFi y por otro está magnéticamente acoplado a un lector RFID. 20
  • 33. Capítulo 2 Estado del ArteArquitectura del sistemaLa arquitectura del sistema se presenta en la figura 2.5. Como puede observarseestá compuesta por un servidor central, el cual colecta información de localizaciónde las estaciones móviles y de los AP, así como sus propiedades, localización,etc. Este servidor es llamado servidor de localización y actúa como un agenteentre diferentes clientes. Figura 2.5 Arquitectura del sistema CampusSpace [FERSCHA 2001]Los clientes almacenan información local, mientras el servidor de localización sóloadministra URIs y URLs enlazadas a la información. Para manejar estainformación de forma estructurada se utiliza RDF como un formato general dedescripción, el cual es un Framework para metadatos en la World Wide Web(WWW), desarrollado por el World Wide Web Consortium (W3C). Un ejemplo deeste tipo de formato se muestra en la figura 2.6. Figura 2.6 Descripción RDF de un miembro del staff [FERSCHA 2001] 21
  • 34. Capítulo 2 Estado del ArteEl funcionamiento se describe como sigue:1. Primeramente el dispositivo móvil detecta en que AP está conectado.2. El dispositivo verifica la información de su posición en el servidor de localización, obteniendo de ello una URL la cual contiene una página que contiene una imagen o texto, la cual le indica el lugar en donde se encuentra.3. Como el error que conlleva utilizar únicamente la potencia recibida del AP puede ser grande, en el momento que el dispositivo tiene en su cercanía una etiqueta RFID este la lee, cada etiqueta tiene su propio identificador de modo que el servidor de localización tendrá almacenada alguna URL de posición de dicha etiqueta.4. Nuevamente el dispositivo vuelve a verificar su posición, ya más exacta debido a la corta distancia que manejan estas etiquetas (las que utilizaron tienen un máximo de 1 metro de cobertura), y actualiza la información en el servidor de posición y obtiene la URL correspondiente a su posición, de este modo el usuario puede verificar su posición entrando a la URL correspondiente.Desventajas Se deben tener tantas páginas como tarjetas se tengan o como puntos de localización se quieran mostrar, debido a que cada punto de localización tiene su propia URL que describe su posición mediante una imagen o texto. No maneja consciencia del contexto ni auto-identificación. Únicamente se centra en el posicionamiento y no extiende su funcionalidad a algún servicio para el usuario, como lo es el manejo de tareas de acuerdo al contexto.2.6 UbiqMuseum: A Bluetooth and Java Based Context-Aware System for Ubiquitous Computing [CANO 2006]Este proyecto se desarrolla por investigadores de la Universidad Politécnica deValencia. El principal objetivo de este proyecto es evaluar el uso de Bluetooth ytecnologías basadas en java en ambientes de computación ubicua.UbiqMuseum es una aplicación experimental consciente del contexto que proveeinformación a visitantes de museos. El sistema da a los visitantes informaciónprecisa acerca de lo que están viendo, de acuerdo a su nivel de conocimiento y ensu lenguaje natural. Del mismo modo provee de una interfaz grafica de usuarioque se adapta al tipo de dispositivo (háblese de teléfonos móviles, PDAs olaptops).Arquitectura del sistemaEl sistema considera 3 tipos de entidades de software: 22
  • 35. Capítulo 2 Estado del Arte Aplicaciones cliente. Ejemplo de ello es un visitante con una PDA con Bluetooth habilitado. Puntos de información del museo (MIPs). Se asocian a una o más piezas de arte u objetos dentro del museo. Servidor central. El cual contiene información de los distintos objetos y piezas de arte en el museo además de guardar una bitácora de las piezas que son visitadas e información del usuario que la visita.La figura 2.7 muestra una representación de la arquitectura de UbiqMuseum. Figura 2.7 Arquitectura del sistema UbiqMuseum [CANO 2006]Funcionamiento del sistemaPara la implementación se utilizan APIs de Java para la tecnología Bluetooth(JABWT) contenida en el JSR-82.La funcionalidad de cada uno de los elementos de la arquitectura es la siguiente: Los usuarios (visitantes del museo), que llevan consigo los clientes, configuran sus preferencias mediante un conjunto de parámetros de entrada que son: 1) el tipo de dispositivo (laptop, PDA o teléfono móvil), 2) el lenguaje de su preferencia y c) el nivel de detalle de la información recibida (intermedio, básico, experto). Una vez hecho esto, el cliente busca por algún MIP mediante Bluetooth. Cuando encuentra un dispositivo y si el usuario decide elegirlo el dispositivo cliente envía el perfil del usuario previamente capturado al MIP elegido. Posteriormente el MIP combina el perfil del usuario con el identificador de la pieza del museo que representa y envía esta información al servidor central. 23
  • 36. Capítulo 2 Estado del Arte El siguiente paso es que el servidor central registra en la bitácora la petición y envía la información correspondiente a la pieza de arte que el MIP representa combinando está con las preferencias del usuario. El MIP recibe esta información y la retransmite al cliente.La figura 2.8 muestra la información que un usuario recibe, cabe resaltar que elusuario lleva consigo una PDA y ha elegido el nivel de detalle intermedio. Figura 2.8 Información recibida en un cliente en UbiqMuseum [CANO 2006]Desventajas Únicamente maneja conectividad Bluetooth. No maneja perfiles de movilidad. La puesta en marcha puedo costar mucho debido a que se deben tener tantos MIPs (dispositivos Bluetooth), en este caso se utilizan tantas laptops, como piezas se tengan en el museo. Es un sistema de corto alcance debido a que la comunicación entre los MIPs y el servidor central se hace a través de sockets. Limitado a pocos clientes por MIP (máximo 7) debido a las características de las piconet formadas por los dispositivos Bluetooth. No maneja otras tareas. 24
  • 37. Capítulo 2 Estado del Arte2.7 A Location-aware System using RFID and Mobile Devices for Art Museums [TESOREIRO 2008]Este proyecto dirigido por investigadores de la Universidad de Castilla-La Mancha,España, presenta un sistema de localización consciente basado en RFIDs activosy pasivos combinado con la tecnología IR (infrarrojos) los cuales soportan elposicionamiento automático de dispositivos móviles. Este proyecto se aplica amuseos de arte.Funcionamiento Para saber la ubicación del usuario se utilizan tarjetas RFID de tipo activas, las cuales están transmitiendo ondas indicando su presencia y cuando el usuario llega, dotado de un lector RFID y un equipo móvil (PDA o laptop), envían su identificador. Cuando el equipo móvil lee el identificador lo envía a un servidor el cual tiene una tabla de mapeo indicando su posición y la información relativa al objeto que el usuario tiene en cercanía. Posteriormente el servidor envía la información perteneciente al identificador, ya sea en forma de texto, audio, imagen o video mediante el protocolo HTTP. Por último el usuario recibe en su dispositivo la información que requiere. Cabe resaltar que aunado al uso de tarjetas RFID activas, incluye el uso de tarjetas RFID pasivas y de lectores de códigos de barras, para leer un objeto en particular.El modeloSu mayor aportación es que presentan un modelo conceptual para soportar unsistema de posicionamiento automático basado en la tecnología RFID. La figura2.9 muestra el modelo que se presenta en este proyecto. 25
  • 38. Capítulo 2 Estado del Arte Figura 2.9 Modelo conceptual [TESOREIRO 2008]Lo interesante de este modelo es la parte resaltada en gris claro, la cual hacereferencia a la forma en que se obtiene el identificador de cada objeto presente enel museo, es independiente de tecnología y puede obtenerse mediante RFIDactivos, RFID pasivos y códigos de barras. El modelo y el prototipo son flexibles acambios y fácilmente pueden añadirse otras tecnologías como (WiFi y Bluetooth)para establecer la ubicación del usuario y mostrarle la información pertinente.Desventajas No define tareas, actividades y servicios, únicamente se centra en enviar la información de los objetos que el usuario tiene en cercanía. No es compatible con dispositivos celulares.2.8 Comparativa del estado del arte con el proyectoEn la tabla 1 se comparan diversas características de los trabajos relacionadoscon el proyecto de tesis. Puede observarse claramente las ventajas que ofrecerespecto de otros proyectos similares. Las ventajas más notables son el hecho deque maneja perfiles de movilidad, ofrece un posicionamiento mediante RFID yQRCodes, y no sólo eso sino que también será flexible a la introducción de otrastécnicas y tecnologías de posicionamiento. Aunado a esto el proyecto tiene laventaja de ofrecer múltiples tareas para la realización de las actividades de unusuario dentro de un campus universitario y no sólo se limita al posicionamiento 26
  • 39. Capítulo 2 Estado del Arte del mismo. Asimismo, el proyecto manejará un proceso de guiado utilizando la información de la ubicación del usuario, para posicionarlo dentro del campus. Tabla 1 Comparativa de los trabajos relacionados con el proyecto de tesis Utilizado Manejo Método Envío de Consciencia Múltiples Error Proyecto Guiado en de Posición datos de contexto tareas (m) celulares mapas[Radar 2000] WiFi HTTP   <15 WiFi, RFID HTTP,[Fers 2001] activo GPRS  <1.5[Horus 2004] WiFi HTTP   <9.5[Cano 2006] Bluetooth Bluetooth  <5[Titi 2007] GSM GPRS  <500 No[Caalix 2007] GPS GPRS    aplica RFID activo[Teso 2008] y pasivo HTTP  <1 RFID yTesis QRCodes HTTP      <1 La segunda parte que conforma el estado del arte la cubren desarrollos tecnológicos que se encuentran operando en el sector privado, los principales desarrollos son servicios que proporcionan las compañías telefónicas para sus usuarios. 2.9 Servicio UBICACEL de iusacell [UBICACEL 2008] Servicio de localización que permite conocer la ubicación geográfica de dispositivos Iusacell. Sirve para localizar dispositivos con capacidad de GPS y GPSOne cuando se encuentren dentro del alcance de la red celular y satelital. Su funcionamiento es el siguiente: mediante una aplicación instalada en el teléfono celular a través de técnicas de triangulación se obtiene la localización del dispositivo y se puede generar la respuesta sobre la ubicación del teléfono. 2.10 Servicio Localízame de Movistar [LOCALIZAME 2008] Servicio proporcionado por la compañía telefónica Movistar para localizar dispositivos móviles por medio de mensajes SMS. Cuenta con la opción de localización por medio de su página de Internet, la localización se hace por medio de la infraestructura de red de la telefónica. Su precisión varía dependiendo de la zona en que se encuentra el dispositivo móvil. 27
  • 40. Capítulo 2 Estado del ArteCuenta con tres opciones del servicio: para localizar otros dispositivos móviles,para que localicen mi dispositivo y para saber mi propia ubicación. Necesitaautorización para conocer la ubicación de otro dispositivo.2.11 AVL Reach U / Localización y Administración Vehicular Telcel [AVL REACH 2008]Servicio que permite a empresas, desde sus propias instalaciones, localizar,rastrear y monitorear vehículos particulares o utilitarios bajo un concepto avanzadode interacción con el equipo instalado en el vehículo. Además permite laobtención de reportes estadísticos y un nivel sofisticado de funcionalidades desdela plataforma y/o a través del envío de mensajes escritos desde un celular Telcelpreviamente definido.2.12 Tramigo [TRAMIGO 2008]Tramigo es una compañía establecida en Finlandia, sus productos permitenrastrear la ubicación y controlar su automóvil a través de su teléfono celular o desu computadora y ser notificado en caso de eventos inesperados tales comoaccidentes, robos o secuestros.Todos los productos Tramigo cuentan con las siguientes características: rastreo ygestión vehicular, localización vía GPS, soporte SMS en cualquier red telefónicaGSM, datos geográficos, posibilidad de personalizar ubicaciones o puntos deinterés.2.13 Skyhook WPS [SKYHOOK 2008]El sistema de posicionamiento WiFi inalámbrico Skyhook, es una simple soluciónde localización software que permite a cualquier dispositivo móvil con WiFihabilitado determinar su posición con una precisión de 20 metros. A diferencia delos receptores GPS, los cuales utilizan satélites para determinar su localización,WPS utiliza puntos de acceso WiFi terrestres.El cliente WPS localiza las señales WiFi existentes a su alrededor y calcula suposición actual usando algoritmos de localización desarrollados por SkyhookWireless. WPS requiere el conocimiento de la localización geográfica de cadapunto de acceso. Esta información es obtenida mediante el despliegue de cientosde especialistas de datos, quieres buscan y localizan puntos de acceso, los cualesse almacenan en una base de datos, por medio de los puntos de acceso es comoel dispositivo móvil puede identificar su localización.En la tabla 2 se muestra la comparativa de los servicios anteriores con la tesispropuesta. 28
  • 41. Capítulo 2 Estado del Arte Tabla 2 Comparativa de los servicios de localización Envío Indep. Consciencia Múltiples Nombre Posicionamiento de de red de contexto tareas datosServicio UBICACEL Técnicas híbridas SMSde Iusacell GSM y GPSServicio localízame Basada en red SMSde MovistarAVL Reach U /Localización y Técnicas hibridas SMS,administración GSM y GPS GPRSvehicularTramigo GPS SMS, GPRS Skyhook WPS Wi Fi GPRS Tesis RFID, QRCodes HTTP   La mayoría de los desarrollos presentados en la tabla anterior, utilizan técnicashíbridas para obtener la localización de los dispositivos. La presentación de losdatos puede ser en una página Web o en formato de un SMS. La desventaja quetiene cada uno de estos desarrollos es su dependencia con la red celular paraobtener la ubicación y proporcionar los servicios que se demandan. Con laplataforma, producto de esta tesis, no se tiene ninguna limitante para obtener lalocalización, la respuesta se envía con los servicios disponibles en la posiciónactual, además el dispositivo tendrá consciencia del contexto y se administraránlas tareas de los usuarios. Además ninguno de los proyectos anteriores maneja laconsciencia del contexto del dispositivo ni técnicas de auto-identificación. 29
  • 42. 3 Capítulo 3 Marco teórico Capítulo 3 Marco teóricoEn este capítulo se presenta la teoría relacionada con este trabajo de tesis. Seinicia describiendo las plataformas más populares de dispositivos móviles y lastecnologías empleadas en el proyecto de tesis, posteriormente se describen losLBS y técnicas de localización en diversas tecnologías.
  • 43. Capítulo 3 Marco Teórico3.1 Plataformas de dispositivos móviles3.1.1 Windows MobileEs un sistema operativo compacto, con una suite de aplicaciones básicas paradispositivos móviles basados en la API Win32 de Microsoft. Los dispositivos quellevan Windows Mobile son Pocket PC, Smartphones y Media Center portátil. Hasido diseñado para ser similar a las versiones de escritorio de Windows.3.1.2 SymbianEs un sistema operativo que fue producto de la alianza de varias empresas detelefonía móvil, entre las que se encuentran Nokia, Sony Ericsson, PSION,Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, MitsubishiElectric, Panasonic, Sharp, etc. Sus orígenes provienen de su antepasadoEPOC32, utilizado en PDAs y Handhelds de PSION.3.1.3 J2MELa plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), esuna especificación de un subconjunto de la plataforma Java orientada a proveeruna colección certificada de APIs de desarrollo de software para dispositivos conrecursos restringidos. Está orientado a productos de consumo como PDAs,teléfonos móviles o electrodomésticos.3.1.4 iPhone OSEl iPhone OS es el sistema operativo que utiliza el iPod touch y el iPhone,diseñado por 175 ingenieros de Apple. Está basado en una variante del Machkernel que se encuentra en Mac OS X.3.1.5 AndroidAndroid es un sistema operativo para dispositivos móviles basado en el núcleoLinux. Inicialmente fue desarrollado por Google y luego por la Open HandsetAlliance (liderada por la propia Google). La presentación de la plataforma Androidse realizó el 5 de noviembre de 2007 junto con la fundación Open HandsetAlliance, un consorcio de 48 compañías de hardware, software ytelecomunicaciones comprometidas a la promoción de estándares abiertos paradispositivos móviles.Esta plataforma permite el desarrollo de aplicaciones por terceros (personasajenas a Google). Los desarrolladores deben escribir código gestionado en ellenguaje de programación Java a través de la SDK que proporciona Google. Lamayoría del código fuente de Android ha sido publicado bajo la licencia desoftware Apache, una licencia de software libre y código fuente abierto. 33
  • 44. Capítulo 3 Marco Teórico3.2 REST (Representational StateTransfer)La Transferencia de Estado Representacional (Representational State Transfer) oREST es una técnica de arquitectura software para sistemas hipermediadistribuidos como la World Wide Web. El término se originó en el año 2000, en unatesis doctoral sobre la Web escrita por Roy Fielding, uno de los principales autoresde la especificación del protocolo HTTP y ha pasado a ser ampliamente utilizadopor la comunidad de desarrollo.Si bien el término REST se refería originalmente a un conjunto de principios dearquitectura —descritos más abajo—, en la actualidad se usa en el sentido másamplio para describir cualquier interfaz Web simple que utiliza XML y HTTP, sinlas abstracciones adicionales de los protocolos basados en patrones deintercambio de mensajes como el protocolo de servicios Web SOAP. Con RESTes posible diseñar servicios Web de acuerdo con el estilo arquitectural REST deFielding y también es posible diseñar interfaces XML-HTTP de acuerdo con elestilo de llamada a procedimiento remoto pero sin usar SOAP.REST afirma que la Web ha disfrutado de escalabilidad como resultado de unaserie de diseños fundamentales clave, los cuales se describen a continuación:  Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la información necesaria para comprender la petición. Como resultado, ni el cliente ni el servidor necesitan recordar ningún estado de las comunicaciones entre mensajes. Sin embargo, en la práctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el estado de la sesión (algunas de estas prácticas, como la reescritura de URLs, no son permitidas por REST).  Un conjunto de operaciones bien definidas que se aplican a todos los recursos de información: HTTP 1.1, define un conjunto de operaciones, las más importantes son POST, GET, PUT y DELETE.  Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso se referencia únicamente a través de su URI.  El uso de hipermedios, tanto para la información de la aplicación como para las transiciones de estado de la aplicación: la representación de este estado en un sistema REST son típicamente HTML o XML, aunque también soporta la representación en JSON. Como resultado de esto, es posible navegar a los recursos REST a través de URIs dinámicas.3.3 JSONJSON (JavaScript Object Notation - Notación de Objetos de JavaScript) es unformato para el intercambio de datos. Es un formato con una estructura simple yse caracteriza por reducir significativamente el volumen de datos a transmitir. Estábasado en un subconjunto del Lenguaje de Programación JavaScript, StandardECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es 34
  • 45. Capítulo 3 Marco Teóricocompletamente independiente del lenguaje pero utiliza convenciones que sonampliamente conocidas por los programadores de la familia de lenguajes C,incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estaspropiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos.JSON está constituido por dos estructuras:  Una colección de pares de nombre/valor. En varios lenguajes esto se conoce como un objeto, registro, estructura, diccionario, tabla hash 1, lista de claves o un arreglo asociativo.  Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o secuencias.3.4 OSGiOSGI son las siglas de Open Services Gateway Initiative y fue creado en Marzo de1999.Su objetivo es definir las especificaciones para software abierto que permitandiseñar plataformas compatibles que puedan proporcionar múltiples servicios. Fuepensado principalmente para su aplicación en redes domésticas y por ende en lallamada domótica2 u hogar inteligente.Aunque OSGi define su propia arquitectura, ha sido pensada para sucompatibilidad con Jini [JINI 2009] o UPnP [UPNP 2009].La arquitectura de OSGi posee un elemento llamado Service Platform, el cual estásituado en la red local y a su vez conectado al proveedor de servicios a través deuna pasarela en la red del operador. Este elemento será el responsable de permitirla interacción entre dispositivos o redes de dispositivos que podrían utilizardistintas tecnologías para comunicarse.La especificación de OSGi se ha definido con una serie de APIs básicas para eldesarrollo de servicios, como los de registro de bitácora, servidor HTTP y el laespecificación de acceso a dispositivos (por sus siglas en inglés DAS), quepermite el descubrir los dispositivos y servicios ofrecidos por éstos.3.5 Servicios basados en localización (LBS)Los LBS (Location Based Services) o LDIS (Location Dependent InformationServices) hacen referencia a Servicios Basados en Localización o para algunosautores simplemente Servicios de Localización.1 Una tabla hash o mapa hash es una estructura de datos que asocia llaves o claves con valores2 Se entiende por domótica al conjunto de sistemas capaces de automatizar una vivienda,aportando servicios de gestión energética, seguridad, bienestar y comunicación, y que puedenestar integrados por medio de redes interiores y exteriores de comunicación, cableadas oinalámbricas, y cuyo control goza de cierta ubicuidad, desde dentro y fuera del hogar 35
  • 46. Capítulo 3 Marco TeóricoLos Servicios Basados en Localización buscan ofrecer un servicio personalizado alos usuarios, en base a su ubicación geográfica. Para su operación utilizatecnología de sistemas de información geográfica, alguna tecnología deposicionamiento bien sea de lado cliente (ej. GPS) o de lado servidor (ej. serviciode posicionamiento suministrado por el operador de la red) y tecnología decomunicación de redes para transmitir información hacia una aplicación LBS quepueda procesar y responder la solicitud.Las aplicaciones típicas LBS buscan proveer servicios geográficos en tiempo real.Algunos ejemplos típicos de esto son servicios de mapas, enrutamiento y páginasamarillas geográficas.Las NICTs (New Information and Communication Technologies, TecnologíasNuevas de Información y Telecomunicación), describe a los LBS como unaintersección entre: sistemas y dispositivos móviles de comunicación, Internet y GIS(Geographic Information Systems, Sistemas de información geográfica) con basede datos espaciales. [STEINIGER 2006] Ver figura 3.1. Figura 3.1 LBS como intersección de tecnologíasEn la figura 3.1 se observa que existen algunas características en común entre losLBS y los GIS, tales como el manejo de datos con referencia posicional yfunciones de análisis espacial, las cuales responden preguntas como: ¿Dóndeestoy…? ¿Qué está cerca de…? ¿Cómo puedo llegar a…? [GUERRA 2007].Sin embargo los LBS y los GIS tienen diferentes orígenes y grupos de usuarios.Los GIS han sido desarrollados durante varias décadas en base a aplicaciones dedatos geográficos profesionales, mientras que los LBS surgieron recientementepor la evolución de servicios móviles públicos. En lo que se refiere a grupos deusuarios, un GIS puede ser visto como un sistema profesional y tradicional,destinado a usuarios con amplia experiencia en sistemas geográficos, además deque consumen extensos recursos de cómputo.En contraste, los LBS se desarrollan como servicios limitados para un grannúmero de usuarios no profesionales. La aplicaciones LBS operan con lasrestricciones del ambiente de cómputo móvil como baja potencia computacional,pantallas pequeñas, o limitaciones debidas al alto consumo de batería. 36
  • 47. Capítulo 3 Marco Teórico3.6 Técnicas de posicionamientoExisten diferentes técnicas para obtener la ubicación del dispositivo móvil. Lascuales se clasifican como se muestra en la figura 3.2. [STEINIGER 2006],[BERNARDOS 2003], [VENTURINO 2003], [MARTINEZ 2005]. Técnicas de posicionamiento Redes WAN Redes LAN Bluetooth GSM Wi Fi GPS Infrarrojos RFID Banda Ultra- ancha Figura 3.2 Clasificación de las técnicas globales de posicionamiento3.6.1 Basadas en redes WAN3.6.1.1 GPSLos localizadores por GPS (y de forma similar sus competidores el ruso Glonass,el chino Beidou y el europeo Galileo) reciben el soporte de una constelación dehasta 24 satélites, que orbitan por todo el globo terrestre enviando sus señales atodo aquél que quiera oírlas. Un receptor de GPS que quiere localizarse dentro delglobo terrestre localiza al menos a cuatro satélites – cuanto mayor sea el númerode satélites encontrado mejorará su estimación de la posición – y de cada uno deellos obtiene la posición del satélite emisor y el tiempo de envío de cada muestrarecibida. Con estos datos, el receptor GPS calcula por triangulación su posiciónabsoluta dentro de la tierra (latitud, longitud, altitud) gracias a que los satélitesemiten en el mismo preciso momento su señal, pero ésta le llega retardada alreceptor por razones obvias de distancia. 37
  • 48. Capítulo 3 Marco Teórico Figura 3.3 Esquema de la localización por GPSUn esquema básico del GPS se muestra en la figura 3.3; este sistema tiene unaprecisión que puede llegar a ser menor a los 10 metros si se toman enconsideración más de cuatro satélites. El inconveniente de utilizar esta tecnologíaes que al necesitar línea de visión directa (LOS Line of sight), hay veces que no seencuentran suficientes satélites al alcance para permitir una localización correcta,esto puede ocurrir en ciudades con rascacielos o calles demasiado estrechas y entúneles. Además, normalmente se requiere que el dispositivo tenga grabado unmapa porque, sin él, sólo se podrá mostrar al usuario su longitud, latitud y altitud, yestos datos no suelen ser informativos para un usuario promedio.Además, las señales del GPS viajan muchos kilómetros y son bastante tenues, porlo que es muy difícil para un receptor GPS en el interior de un edificio encontrarseñales procedentes de los satélites y más aún, conseguir que estas señales lesirvan para localizarse.3.6.1.2 Localización usando GSMOtra alternativa posible, que además no necesitaría ningún hardware adicional,pasaría por el uso de un teléfono móvil [FISHER 1998], y de hecho ya hayoperadoras de telefonía móvil que ofrecen la opción de localización vía móvil a susclientes. Sin embargo, la falta de precisión sitúa a esta tecnología en claradesventaja respecto de otras, ya que los sistemas de localización de este tipo nopueden dar precisiones mayores de 50 metros. Esto es debido a que lalocalización con el uso del teléfono móvil (localización por GSM) se basa en ladetección de la célula a la que está conectada el móvil, y en zonas urbanas laprecisión es de decenas de metros, sin embargo en las zonas rurales, donde senecesitan menos células para dar servicio a menor población, esta precisión esmucho menor. 38
  • 49. Capítulo 3 Marco Teórico3.6.2 Basadas en redes LAN3.6.2.1 WiFiLa comunicación típica en el protocolo IEEE 802.11 sigue un modelo centralizado.Por tanto, una red consta de uno o varios puntos de acceso (APs) y multitud declientes conectados a uno de los puntos de acceso. Cada punto de acceso emiteperiódicamente una serie de paquetes llamados beacon frames para hacer notarsu presencia a los usuarios, los cuales de este modo pueden saber en todomomento qué redes inalámbricas hay disponibles en su entorno. Así pues, sepuede realizar un mapeo de las coordenadas de los APs utilizando sus direccionesMAC, un dispositivo que esté en la cobertura de un determinado AP puede sabersu ubicación mediante el envío de las direcciones MAC a un servidor quecontenga la ubicación de dicho AP.El inconveniente de esta técnica en principio es el modo de recolección de lascoordenadas de los APs, ya que si no se establecen las correctas coordenadas deun AP, la precisión en la localización posterior de un dispositivo se verá afectada.3.6.2.2 RFIDRFID (siglas de Radio Frequency IDentification, en español Identificación porradiofrecuencia) es un sistema remoto de almacenamiento y recuperación dedatos que usa dispositivos denominados etiquetas, transpondedores o tags RFID.El propósito fundamental de la tecnología RFID es transmitir la identidad de unobjeto (similar a un número de serie único) mediante ondas de radio. Lastecnologías RFID se agrupan dentro de las denominadas Auto ID (AutomaticIdentification, o Identificación Automática), su especificación la define el estándarIEEE 802.15.4.Una etiqueta RFID es un dispositivo pequeño, que puede ser adherido oincorporado a un producto, animal o persona. Contienen antenas para recibir yresponder a peticiones por radiofrecuencia desde un emisor-receptor RFID.Existen dos tipos de etiquetas RFID: activas y pasivas. Las etiquetas pasivas nonecesitan alimentación eléctrica interna, mientras que las activas sí lo requieren.Una de las ventajas del uso de radiofrecuencia (en lugar de infrarrojos) es que nose requiere visión directa entre emisor y receptor.Este sistema se basa en etiquetas de radiofrecuencia que contienen una antenaemisora/receptora, la etiqueta recibe dicha señal, y la utiliza como señal dealimentación, la etiqueta utiliza el campo electromagnético alternativo creado porla bobina de antena de lectura, originando un voltaje por inducción cuando elcampo electromagnético penetra la selección cruzada de la bobina de la antenadel transpondedor, el voltaje se rectifica y actúa como el suministro de poder paradar energía al microchip y la memoria en la etiqueta, luego utilizando modulaciónel transpondedor puede transferir datos codificados hacia la memoria de laetiqueta desde el lector en onda modulada. Así, un usuario que se quisiera 39
  • 50. Capítulo 3 Marco Teóricolocalizar en un edificio tendría cerca de él un número de etiquetas deradiofrecuencia. El propio usuario tendría un lector de etiquetas RFID y leyendolas etiquetas cercanas puede llegar a localizarse.Un ejemplo de un sistema de localización que usa RFID es Cricket [CRICKET2001], un sistema ideado por ingenieros del MIT (Massachussets Institute ofTechnology), cuya precisión es 2 centímetros y ha sido empleado en otrosproyectos como seguimiento de objetos, control de robots o en aplicacionesconscientes del contexto (en las cuales la localización del usuario juega un papelmuy importante).Revisando las características de esta tecnología es posible utilizarla para localizare identificar a un dispositivo dentro de un edificio, además es una tecnología queen Europa está tomando auge y los dispositivos son cada vez más económicos,tan es así que los celulares de nueva generación ya cuentan con un lector RFIDinmerso.3.6.2.3 Localización por InfrarrojosLa localización por infrarrojos es de muy corto alcance (unos dos metros) y serequieren enlaces de línea de visión directa. Por su corto alcance habría queincluir una cantidad enorme de emisores de infrarrojos, y aún así serían imposiblesdetectar ciertas localizaciones por el problema derivado de la necesidad de líneade vista directa.Existe un proyecto llamado WIPS (Wireless Indoor Positioning System) que sebasa en la existencia de beacons frames emitidos vía infrarrojos que llevan losusuarios del sistema de posicionamiento para localizarse tanto de forma públicacomo de forma anónima [WIPS 2000].3.6.2.4 BluetoothEn las técnicas basadas en Bluetooth el cliente monitorea los dispositivos que hayal alcance y procedería por triangulación a ver su localización [HALLBERG 2003][WEISSMAN 2004]. La ventaja es que es una tecnología barata, pero el alcancees demasiado corto en su versión 1.1, sin embargo en la versión 2.0 el alcance esde cerca de 100 metros. El error cometido puede estar en torno a 1,5 metros, locual no está mal para localización en interiores. El mayor inconveniente que tieneBluetooth es que el indicador de RSS (potencia de señal) no es preciso, por lo queno se puede usar y por ello, si se encuentra un dispositivo cercano, hay queasumir que se está en su entorno pero no se puede estimar el grado de cercanía olejanía.Algunas técnicas de localización como la propuesta en [GONZALEZ 2003] hansido desarrolladas con la finalidad de ubicar a un dispositivo Bluetooth dentro deuna red del mismo tipo, sin embargo no contempla que esta tecnología coexistacon otras más. 40
  • 51. Capítulo 3 Marco Teórico3.6.2.5 Wi-MaxLa tecnología Wi-Max es aún bastante desconocida y sigue el estándar IEEE802.16. Está pensada para la intercomunicación de áreas muy extensas, de hasta48 kilómetros de radio, y puede llegar a transmitir a velocidades de hasta 70 Mbps.La desventaja de la utilización de esta tecnología es que la mayoría de losdispositivos actuales no cuenta con ella. 41
  • 52. 4 Capítulo 4 Análisis y diseño Capítulo 4 Análisis y diseñoEn este capítulo se presentan los diagramas de caso de uso, la definición deescenarios y los diagramas de actividad que corresponden a la fase de análisis.Asimismo se presentan los diagramas de clase y de secuencia correspondientes ala etapa del diseño. Por último se detalla el diseño de las URLs válidas para elsistema y el diagrama físico de la base de datos.
  • 53. Capítulo 4 Análisis y diseño4.1 AnálisisEl presente trabajo de tesis es un proyecto integral que incluye la implementacióntanto de la parte cliente como servidora.En la figura 4.1 se muestra el diagrama de bloques que corresponde a la forma deinteracción entre el cliente y el servidor que formarán parte del proyecto. Consulta de Recibir tareas petición pendientes Enviar Nueva tarea URI recurso petición Realizar Completar tarea consulta Leer punto de Obtener referencia Formatear ubicación resultados Mostrar Interpretar Recibir Enviar resultado resultados resultado resultados s s Figura 4.1 Diagrama de bloques del proceso de comunicación entre el cliente y el servidorEl análisis detallado del cliente y el servidor se llevo a cabo siguiendo un enfoqueUML, por medio de diagramas de casos de uso y diagramas de actividad. Acontinuación se presentan los diagramas de caso de uso, la definición deescenarios y los diagramas de actividad que corresponden a la fase de análisis delproyecto.En la figura 4.2 se muestra el diagrama general de casos de uso del proyecto, sevisualizan las funciones principales que ofrece, las cuales son: Consultar tareas pendientes. Alta de tarea. Completar tarea. Cancelar tarea. 45
  • 54. Capítulo 4 Análisis y diseño CU-1 Consultar tareas pendientes CU-2 Alta de tarea CU-3 Completar tarea Dispositivo cliente Servidor CU-4 Cancelar tarea Figura 4.2 Diagrama general de casos de usoLa figura 4.3 muestra el diagrama de caso de uso CU-1 Consultar tareaspendientes. La consulta de tareas pendientes puede ser general, o puede filtrarsemediante la verificación de los objetos que se encuentran en el contexto deldispositivo (la verificación puede realizarse mediante código de barras o RFID). CU-1.1 Verificar Contexto «extends» «uses» CU-1 Consultar CU-1.2 Listado de tareas pendientes tareas pendientes Dispositivo cliente Servidor Figura 4.3 Diagrama del caso de uso CU-1 Consultar tareas pendientes Tabla 3 Descripción del caso de uso CU-1 Consultar tareas pendientes El diagrama de actividades que incluye los escenarios de ID: CU-1 éxito y los escenarios de fracaso se muestra en la figura 4.4.Nombre del caso Consultar tareas pendientes. de uso: Actores Dispositivo cliente, Servidor. Permite consultar las tareas pendientes que tiene el usuario Descripción: mediante la conexión con el servidor y la verificación del contexto. 46
  • 55. Capítulo 4 Análisis y diseño 1. El dispositivo cliente debe tener acceso al servidor por medio de Internet. Precondiciones: 2. El usuario debe haber accedido a la aplicación y haberse autentificado. 1. Se obtendrá un listado de tareas pendientes que seránPostcondiciones: mostradas en el dispositivo cliente. 1. Se inicia la conexión con el servidor. 2. El servidor consulta en la base de datos y devuelve mediante Escenario de HTTP un listado de tareas pendientes. éxito 1: 3. El dispositivo cliente visualiza el listado de tareas. 4. Terminar el proceso. 1. Se verifica el contexto. 2. Se inicia la conexión con el servidor enviándole datos del contexto. Escenario de 3. El servidor consulta en la base de datos las tareas pendientes éxito 2: haciendo un filtrado según el contexto enviado y devuelve mediante HTTP un listado de tareas pendientes. 4. El dispositivo cliente visualiza el listado de tareas. 5. Terminar el proceso. Incluye: CU-1.1 Verificar contexto, CU-1.2 Listado de tareas pendientes. Suposiciones: Se supone que el cliente tiene acceso a una conexión HTTP. No Verificar Si contexto Conectar con el servidor Buscar recursos en cercanía (RFID o barras) Obtener un listado de tareas pendientes Figura 4.4 Diagrama de actividad del caso de uso CU-1 Consultar tareas pendientes Tabla 4 Descripción del caso de uso CU-1.2 Listado de tareas pendientes El diagrama de actividades que incluye el escenario de ID: CU-1.2 éxito y los escenarios de fracaso se muestra en la figura 4.5.Nombre del caso Listado de tareas pendientes. de uso: 47
  • 56. Capítulo 4 Análisis y diseño Actores Dispositivo cliente, Servidor. Descripción: Despliega un listado tareas pendientes que tiene el usuario. 1. El dispositivo cliente debe tener acceso al servidor por medio de Internet. Precondiciones: 2. El usuario debe haber accedido a la aplicación y haberse autentificado. 1. Se obtendrá un listado de tareas pendientes que seránPostcondiciones: mostradas en el dispositivo cliente. 1. Se inicia la conexión con el servidor. 2. El servidor consulta en la base de datos y devuelve mediante Escenario de HTTP un listado de tareas pendientes. éxito 1: 3. El dispositivo cliente visualiza el listado de tareas. 4. Terminar el proceso. Incluye: Suposiciones: Se supone que el cliente tiene acceso a una conexión HTTP. Conectar con el servidor No Si Hay tareas Informar que no existen tareas Obtener un listado de tareas pendientes Figura 4.5 Diagrama de actividad del caso de uso CU-1.2 Listado de tareas pendientesEn la figura 4.6 se muestra el diagrama de caso de uso CU-1.1 Verificar contexto. 48
  • 57. Capítulo 4 Análisis y diseño CU-1.1.1 Consultar CU-1.1.2 Consultar por RFID por Barras «extends» «extends» Dispositivo cliente «extends» Servidor CU-1.1 Verificar CU-1.1.3 Obtener Contexto ubicación Figura 4.6 Diagrama del caso de uso CU-1.1 Verificar contexto Tabla 5 Descripción del caso de uso CU-1.1 Verificar contexto El diagrama de actividades que incluye el escenario de éxito ID: CU-1.1 y los escenarios de fracaso se muestra en la figura 4.7. Nombre del Verificar contexto. caso de uso: Actores Dispositivo cliente, Servidor. Permite que el dispositivo monitoreé su alrededor en busca de recursos Descripción: que estén asociados a una tarea. 1. El dispositivo cliente debe tener acceso a un lector de tarjetas RFID, óPrecondicione 2. El dispositivo cliente debe tener una cámara fotográfica incluida. s: 3. El usuario debe haber accedido a la aplicación y haberse autentificado.Postcondicion 1. Se obtendrá un listado de recursos en cercanía, los cuales se es: relacionen con tareas pendientes almacenadas previamente. 1. Se inicia la conexión con el lector de tarjetas RFID. 2. Se obtienen los identificadores de los recursos en cercanía. Escenario de 3. Se envían los identificadores de los recursos encontrados al éxito 1: servidor. 4. Terminar el proceso. 1. Se inicia la conexión con la cámara fotográfica. 2. Se captura la imagen correspondiente al código de barras del recurso. Escenario de 3. Se decodifica el código de barras obteniendo un identificador del éxito 2: recurso. 5. Se envía el identificador del recurso encontrado al servidor. 4. Terminar el proceso. CU-1.1.1 Consultar por RFID, CU-1.1.2 Consultar por barras, CU-1.1.3 Incluye: Obtener ubicación. Se supone que el cliente tiene acceso a un lector RFID y a una cámaraSuposiciones: fotográfica y que la fotografía capturada corresponde a un código de barras. 49
  • 58. Capítulo 4 Análisis y diseño No Código de Si barras Conectar con el lector RFID Conectar con cámara fotográfica Obtener los identificadores en cercanía Obtener fotografía de código de barras Enviar información al servidor Decodificar fotografía (código de barras) Figura 4.7 Diagrama de actividad del caso de uso CU-1.1 Verificar contexto Tabla 6 Descripción del caso de uso CU-1.1.1 Consultar por RFID El diagrama de actividades que incluye el escenario de ID: CU-1.1.1 éxito y los escenarios de fracaso se muestra en la figura 4.8.Nombre del caso Consultar por RFID. de uso: Actores Dispositivo cliente, Servidor. Permite que el dispositivo monitoreé su alrededor en busca de Descripción: tarjetas RFID al alcance. 1. El dispositivo cliente debe tener acceso a un lector de tarjetas RFID. Precondiciones: 2. El dispositivo cliente tiene acceso mediante HTTP al servidor. 3. El usuario previamente ha ingresado a la aplicación y ha sido autentificado. 1. Se obtendrán todos los recursos que se encuentren en cercaníaPostcondiciones: al dispositivo cliente. 1. Se inicia la conexión con el lector de tarjetas RFID. 2. Se obtienen los identificadores de los recursos en cercanía. Escenario de 3. Se envían los identificadores de los recursos encontrados al éxito: servidor. 4. Terminar el proceso. 1. Iniciar la conexión con el lector de tarjetas RFID. Escenario de 2. Ocurre un error en la conexión. fracaso 1: 3. Indicar que no se obtuvieron los datos. 4. Terminar proceso. 1. Iniciar la conexión con el lector de tarjetas RFID. 2. Extraer los identificadores de las tarjetas RFID en cercanía. Escenario de 3. No hay tarjetas RFID en cercanía. fracaso 2: 4. Indicar que no se obtuvieron los datos. 5. Terminar proceso. 50
  • 59. Capítulo 4 Análisis y diseño Incluye: Se supone que el dispositivo cliente tiene acceso a un servidor por Suposiciones: medio de HTTP. Conectar con el lector RFID No Conexión establecida Si Extraer identificadores de tarjetas RFID Extrajo No Si Indicar que no se obtuvieron los datos Enviar información al servidor Figura 4.8 Diagrama de actividad del caso de uso CU-1.1.1 Consultar por RFID Tabla 7 Descripción del caso de uso CU-1.1.2 Consultar por Barras El diagrama de actividades que incluye el escenario de ID: CU-1.1.2 éxito y los escenarios de fracaso se muestra en la figura 4.9.Nombre del caso Consultar por barras. de uso: Actores Dispositivo cliente, Servidor. Permite que el dispositivo tome una fotografía y decodifique la Descripción: imagen si tiene un código de barras. 1. El dispositivo cliente debe tener acceso a una cámara fotográfica. 2. El dispositivo cliente tiene acceso mediante HTTP al servidor. Precondiciones: 3. El usuario debe haber accedido a la aplicación y haberse autentificado.Postcondiciones: 1. Se decodificará la imagen que contiene un código de barras. 1. Se inicia la conexión con la cámara fotográfica. 2. Capturar imagen correspondiente al código de barras. Escenario de 3. Convertir imagen capturada a monocromática. éxito: 4. Decodificar imagen capturada (código de barras). 5. Enviar información al servidor. 6. Terminar el proceso. Escenario de 1. Iniciar la conexión con la cámara fotográfica. fracaso 1: 2. Ocurre un error en la conexión. 51
  • 60. Capítulo 4 Análisis y diseño 3. Indicar que no fue posible decodificar la imagen. 4. Terminar proceso. 1. Iniciar la conexión con la cámara fotográfica. 2. Capturar la imagen. 3. Convertir imagen a monocromática. Escenario de 4. No se puede decodificar la imagen debido a que no es un código fracaso 2: de barras. 5. Indicar que no se pudo decodificar la imagen. 6. Terminar proceso. Incluye: Se supone que el dispositivo cliente tiene acceso a un servidor porSuposiciones: medio de HTTP. Conectar con la cámara fotográfica No Conexión establecida Si Capturar imagen Convertir imagen a monocromática Decodificar imagen Decodificó No Si No fue posible decodificar Enviar información al servidor Figura 4.9 Diagrama de actividad del caso de uso CU-1.1.2 Consultar por barras Tabla 8 Descripción del caso de uso CU-1.1.3 Obtener ubicación El diagrama de actividades que incluye el escenario de ID: CU-1.1.3 éxito y los escenarios de fracaso se muestra en la figura 4.10. Nombre del Obtener ubicación.caso de uso: 52
  • 61. Capítulo 4 Análisis y diseño Actores Dispositivo cliente, Servidor. Obtiene la ubicación actual del dispositivo utilizando RFID, Wi-Fi, Descripción: Bluetooth, GPS o alguna técnica en GSM. 1. El dispositivo cliente tiene acceso mediante HTTP al servidor.Precondicione 2. El usuario debe haber accedido a la aplicación y haberse s: autentificado.Postcondicion 1. Se obtendrá la localización del dispositivo. es: 1. Iniciar la conexión con el dispositivo GPS. Escenario de 2. Se obtiene la lectura de datos del GPS. éxito 1: 3. Se obtiene la información de ubicación del dispositivo. 4. Terminar proceso. 1. Iniciar la conexión con el dispositivo GPS. 2. No se puede conectar con el dispositivo GPS. 3. Establecer conexión con el lector RFID. Escenario de 4. Se leen las tarjetas RFID en cercanía. éxito 2: 5. Se envía los identificadores de las tarjetas leídas al servidor. 6. El servidor mapea el identificador en la ubicación. 7. Se obtiene la información de ubicación del dispositivo. 8. Terminar proceso. 1. Iniciar la conexión con el dispositivo GPS. 2. No se puede obtener información de ubicación del GPS. 3. Establecer conexión con el lector RFID. 4. No se puede conectar con el lector o no existen tarjetas RFID en cercanía. Escenario de 5. Establecer conexión con Bluetooth. éxito 3: 6. Obtener dispositivos cercanos. 7. Se envía las direcciones MAC de los dispositivos cercanos al servidor. 8. El servidor mapea la dirección MAC en la ubicación. 9. Se obtiene la información de ubicación del dispositivo. 10. Terminar proceso. 1. Iniciar la conexión con el dispositivo GPS. 2. No se puede obtener información de ubicación del GPS. 3. Establecer conexión con el lector RFID. 4. No se puede conectar con el lector o no existen tarjetas RFID en cercanía. 5. Establecer conexión con Bluetooth. 6. No se puede establecer la conexión Bluetooth o no existen Escenario de dispositivos con Bluetooth en cercanía. éxito 4: 7. Establecer conexión Wi-Fi. 8. Obtener dispositivos cercanos. 9. Se envía las direcciones MAC de los dispositivos cercanos al servidor. 10. El servidor mapea la dirección MAC en la ubicación. 11. Se obtiene la información de ubicación del dispositivo. 12. Terminar proceso. 1. Iniciar la conexión con el dispositivo GPS. Escenario de 2. No se puede obtener información de ubicación del GPS. éxito 5: 3. Establecer conexión con el lector RFID. 53
  • 62. Capítulo 4 Análisis y diseño 4. No se puede conectar con el lector o no existen tarjetas RFID en cercanía. 5. Establecer conexión con Bluetooth. 6. No se puede establecer la conexión Bluetooth o no existen dispositivos con Bluetooth en cercanía. 7. Establecer conexión Wi-Fi. 8. No se puede establecer la conexión Wi-Fi o no existen AP en cercanía. 9. Obtener células GSM. 10. Se obtiene la información de ubicación del dispositivo. 11. Terminar proceso. Incluye: Se supone que el dispositivo cliente tiene acceso a un servidor porSuposiciones: medio de HTTP. Se supone además que el dispositivo cuenta al menos con conectividad GSM. Verificar conectividad GPS No Existe conexión Si Establecer conexión con lector RFID Obtener lectura de GPS No Si Conexión establecida No Se obtuvo lectura Establecer conexión Bluetooth Leer tarjetas en cercanía Si Obtener ubicación A No Se obtuvo lectura C Si Enviar identificador al servidor B Figura 4.10 Diagrama de actividad del caso de uso CU-1.1.3 Obtener ubicación 54
  • 63. Capítulo 4 Análisis y diseño A No Si Conexión establecida Establecer conexión Wi-Fi Verificar dispositivos en cercanía No Hay No Si dispositivos Conexión establecida Si Obtener información GSM Verificar dispositivos cercanos B C No Hay Si dispositivos Figura 4.10 Diagrama de actividad del caso de uso CU-1.1.3 Obtener ubicación (Cont.)En la figura 4.11 se muestra el diagrama de caso de uso CU-2 Alta de Tarea. CU-2.1 Seleccionar CU-1.1 Verificar tarea de guiado Contexto «extends» «extends» CU-2 Alta de tarea Dispositivo cliente Servidor Figura 4.11 Diagrama del caso de uso CU-2 Alta de tarea Tabla 9 Descripción del caso de uso CU-2 Alta de tarea El diagrama de actividades que incluye el escenario de ID: CU-1.2 éxito y los escenarios de fracaso se muestra en la figura 4.12. 55
  • 64. Capítulo 4 Análisis y diseñoNombre del caso Alta de tarea. de uso: Actores Dispositivo cliente, Servidor Descripción: Permite al usuario registrar nuevas tareas. 1. El dispositivo cliente debe tener acceso al servidor por medio de internet. Precondiciones: 2. El usuario debe haber ingresado y haber sido autentificado en la aplicación. 1. Se creará una nueva tarea la cual se establecerá comoPostcondiciones: pendiente. 1. Seleccionar actividad. 2. Seleccionar tipo de tarea. 3. Seleccionar tarea. 4. Elegir recurso asociado. Escenario de 5. Verificar contexto. éxito 1: 6. Establecer fecha de cumplimiento. 7. Almacenar tarea en servidor. 8. Establecer tarea como pendiente. 9. Terminar el proceso. 1. Seleccionar actividad. 2. Seleccionar tipo de tarea. 3. Seleccionar tarea. Escenario de 4. Elegir recurso asociado. éxito 2: 5. Establecer fecha de cumplimiento. 6. Almacenar tarea en servidor. 7. Establecer tarea como pendiente. 6. Terminar el proceso. Incluye: CU-1.1 Verificar contexto, CU-2.1 Seleccionar tarea de guiado. Suposiciones: Se supone que el cliente tiene acceso a una conexión HTTP. 56
  • 65. Capítulo 4 Análisis y diseño Seleccionar Actividad Seleccionar tipo de tarea Seleccionar tarea Elegir recurso asociado No Verificar Si contexto Establecer fecha de cumplimiento Buscar recursos en cercanía (RFID o barras) Almacenar tarea en servidor Establecer tarea como pendiente Figura 4.12 Diagrama de actividad del caso de uso CU-2 Alta de tareaEn la figura 4.13 se muestra el diagrama de casos de uso CU-2.1 Seleccionartarea de guiado. «uses» CU-2.1 Seleccionar CU-1.1.3 Obtener tarea de guiado ubicación «uses» Dispositivo cliente CU-2.1.1 Obtener Servidor Ruta Figura 4.13 Diagrama del caso de uso CU-2.1 Seleccionar tarea de guiado 57
  • 66. Capítulo 4 Análisis y diseño Tabla 10 Descripción del caso de uso CU-2.1 Seleccionar tarea de guiado El diagrama de actividades que incluye el escenario de ID: CU-2.1 éxito y los escenarios de fracaso se muestra en la figura 4.14.Nombre del caso Seleccionar tarea de guiado. de uso: Actores Dispositivo cliente, Servidor. Descripción: Permite al usuario hacer una tarea de guiado. 1. El dispositivo cliente debe tener acceso al servidor por medio de internet. Precondiciones: 2. El usuario debe haber accedido a la aplicación y haber sido autentificado. 1. Se completará una tarea que se tenía establecida comoPostcondiciones: pendiente. 1. El usuario selecciona la tarea de guiado. 2. Se obtiene la ubicación actual. 3. Se selecciona la ubicación destino. Escenario de 4. Se envían la ubicación actual y la destino al servidor. éxito 1: 5. El servidor crea la ruta y la devuelve mediante HTTP al cliente. 6. El dispositivo cliente debe seguir la ruta establecida. 7. Terminar el proceso. 1. El usuario selecciona la tarea de guiado. 2. No se puede obtener la ubicación actual. Escenario de 3. Se envía un mensaje indicándole al cliente que el proceso no fracaso 1: puede llevarse a cabo. 4. Terminar el proceso. Incluye: CU-1.1.3 Obtener ubicación, CU-2.1.1 Obtener ruta. Suposiciones: Se supone que el cliente tiene acceso a una conexión HTTP. 58
  • 67. Capítulo 4 Análisis y diseño Seleccionar tarea de guiado Obtener la ubicación actual No Se obtuvo Si ubicación Seleccionar la ubicación destino Informar que no se pudo realizar la operación Enviar información al servidor Obtener ruta del servidor Figura 4.14 Diagrama de actividad del caso de uso CU-2.1 Seleccionar tarea de guiadoEn la figura 4.15 se muestra el diagrama de caso de uso CU-3 Completar Tarea. CU-1.1 Verificar Contexto «extends» CU-3 Completar tarea Dispositivo cliente Servidor Figura 4.15 Diagrama del caso de uso CU-3 Completar tarea Tabla 11 Descripción del caso de uso CU-3 Completar tarea El diagrama de actividades que incluye el escenario de ID: CU-1.3 éxito y los escenarios de fracaso se muestra en la figura 4.16.Nombre del caso Completar tarea. de uso: Actores Dispositivo cliente, Servidor Descripción: Permite al usuario completar una tarea pendiente. Precondiciones: 1. El dispositivo cliente debe tener acceso al servidor por medio de 59
  • 68. Capítulo 4 Análisis y diseño internet. 2. El usuario debe haber accedido a la aplicación y haber sido autentificado. 3. El usuario deber haber consultado el listado de tareas pendientes. 4. El usuario debe haber elegido el detalle de la tarea que quiere completar. 1. Se completará una tarea que se tenía establecida comoPostcondiciones: pendiente. 1. Verificar contexto. 2. Buscar recursos en cercanía. Escenario de 3. Seleccionar tarea. éxito 1: 4. Completar tarea. 5. Cambiar estado de tarea a completa. 6. Terminar el proceso. 1. Seleccionar tarea. Escenario de 2. Completar tarea. éxito 2: 3. Cambiar estado de tarea a completa. 4. Terminar el proceso. Incluye: CU-1.1 Verificar contexto. Suposiciones: Se supone que el cliente tiene acceso a una conexión HTTP. No Verificar Si contexto Seleccionar tarea Buscar recursos en cercanía (RFID o barras) Completar tarea Cambiar estado de tarea a completa Figura 4.16 Diagrama de actividad del caso de uso CU-3 Completar tareaEn la figura 4.17 se muestra el diagrama de caso de uso CU-4 Cancelar Tarea. 60
  • 69. Capítulo 4 Análisis y diseño CU-1.1 Verificar Contexto «extends» CU-3 Completar tarea Dispositivo cliente Servidor Figura 4.17 Diagrama del caso de uso CU-4 Cancelar tarea Tabla 12 Descripción del caso de uso CU-4 Cancelar tarea El diagrama de actividades que incluye el escenario de ID: CU-1.3 éxito y los escenarios de fracaso se muestra en la figura 4.18.Nombre del caso Cancelar tarea. de uso: Actores Dispositivo cliente, Servidor. Descripción: Permite al usuario cancelar una tarea pendiente. 1. El dispositivo cliente debe tener acceso al servidor por medio de internet. 2. El usuario debe haber accedido a la aplicación y haber sido autentificado. Precondiciones: 3. El usuario deber haber consultado el listado de tareas pendientes. 4. El usuario debe haber elegido el detalle de la tarea que quiere cancelar.Postcondiciones: 1. Se cancelará una tarea que se tenía establecida como pendiente. 1. Verificar contexto. 2. Buscar recursos en cercanía. Escenario de 3. Seleccionar tarea. éxito 1: 4. Cancelar tarea. 5. Cambiar estado de tarea a cancelada. 6. Terminar el proceso. 1. Seleccionar tarea. Escenario de 2. Cancelar tarea. éxito 2: 3. Cambiar estado de tarea a cancelada. 4. Terminar el proceso. Incluye: CU-1.1 Verificar contexto. Suposiciones: Se supone que el cliente tiene acceso a una conexión HTTP. 61
  • 70. Capítulo 4 Análisis y diseño No Verificar Si contexto Seleccionar tarea Buscar recursos en cercanía (RFID o barras) Cancelar tarea Cambiar estado de tarea a cancelada Figura 4.18 Diagrama de actividad del caso de uso CU-4 Cancelar tarea4.2 DiseñoEl proyecto de tesis consiste en dos partes: la parte cliente y la parte servidora. Eldiseño se explicará para cada una de las partes. En el punto 2.2.5 se detalla lainteracción entre las clases del cliente y el servidor en las operaciones querealizará el sistema.4.2.1 ClienteLa parte cliente consta de 7 paquetes que se listan a continuación: mx.edu.cenidet.clientetareasandroid.activities define las activities propias de la interfaz del cliente Android. mx.edu.cenidet.clientetareasandroid.codigobarras implementa la lectura y decodificación del código de barras. mx.edu.cenidet.clientetareasandroid.conexionhttp contiene las clases para la conexión con el servidor de tareas a través del protocolo HTTP. mx.edu.cenidet.clientetareasandroid.interfaz define las interfaces gráficas del cliente Android. mx.edu.cenidet.clientetareasandroid.objetos define los objetos requeridos para el establecimiento de tareas. mx.edu.cenidet.clientetareasandroid.rfid define las clases para la conexión con el lector de tarjetas RFID y para la lectura de las tarjetas. mx.edu.cenidet.clientetareasandroid.utilerias contiene clases para el procesamiento de imágenes, cadenas y la configuración propia del cliente Android. 62
  • 71. Capítulo 4 Análisis y diseñoEl nombre de los paquetes se asignó siguiendo las recomendaciones descritas enel artículo Estructura de paquetes [Rames 2005].La figura 4.19 muestra el diagrama de paquetes pertenecientes al cliente Android. Figura 4.19 Diagrama de paquetes del cliente4.2.1.1 Paquete mx.edu.cenidet.clientetareasandroid.activitiesEn la figura 4.20 se muestra el diagrama de clases del paquetemx.edu.cenidet.clientetareasandroid.activities, el cual forma parte de la interfaz deusuario. Figura 4.20 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.activities 63
  • 72. Capítulo 4 Análisis y diseñoA continuación se describen de manera general las clases que componen a estepaquete. Cabe recalcar que este paquete define las interfaces gráficas con las quetrabaja Android, debido a esto no hay relación alguna entre las clases de estepaquete, no obstante si las hay de este paquete con los demás paquetes. ActividadesListActivity. Contiene métodos para la obtención de la interfaz gráfica en donde se visualiza un listado de actividades a las que puede tener acceso un determinado usuario. CapturaBarrasGuiadoActivity. Contiene la funcionalidad necesaria para visualizar la interfaz gráfica para la captura de una imagen con código de barras utilizado para realizar el proceso de guiado. CapturaBarrasOrigenActivity. Contiene la funcionalidad necesaria para visualizar la interfaz gráfica para la captura de una imagen con código de barras utilizado para obtener la ubicación inicial del usuario dentro del proceso de guiado. DaemonTareas. Contiene los métodos y atributos necesarios para el lanzamiento de un servicio que se ejecuta en segundo plano y está verificando objetos cercanos que se asocien a tareas o tareas que se cumplan en los próximos minutos. GrupoListActivity. Proporciona la funcionalidad necesaria para visualizar una lista de grupos de usuarios. GuiadoActivity. Proporciona la interfaz gráfica necesaria para la realización de la tarea de guiado en interiores utilizando RFID. GuiadoQRCodesActivity. Proporciona la interfaz gráfica necesaria para la realización de la tarea de guiado en interiores utilizando código de barras. InstanciaTareaDetalleActivity. Contiene métodos y atributos necesarios para la presentación al usuario de la información detallada de una tarea pendiente. InstanciaTareaListActivity. Contiene métodos para la obtención de la interfaz gráfica de un listado de tareas pendientes del usuario. LoginActivity. Proporciona métodos para la presentación de la pantalla de autenticación del usuario. NuevaTareaActivity. Contiene métodos para visualizar la pantalla de alta de una nueva tarea. RecursoDetalleActivity. Proporciona métodos y atributos para la presentación en pantalla de los detalles de un recurso. RecursoListActivity. Contiene métodos para visualizar la pantalla de listado de recursos, utilizando para mostrar los recursos cercanos al dispositivo. TipoTareaListActivity. Proporciona métodos para la presentación en pantalla de un listado de tareas disponibles para que un usuario pueda instanciarlas. UbicacionDetalleActivity. Contiene métodos y atributos necesarios para mostrar en pantalla el detalle de una ubicación. UbicacionListQrcodesActivity. Proporciona métodos y atributos necesarios para mostrar un listado con las ubicaciones. Utilizado para que el usuario seleccione el destino en el proceso de guiado mediante QRCodes. 64
  • 73. Capítulo 4 Análisis y diseño UbicacionListRFIDActivity. Contiene los métodos necesarios para mostrar en pantalla un listado con las ubicaciones. Utilizado para que el usuario seleccione el destino en el proceso de guiado mediante RFID. UsuarioDetalleActivity. Proporciona métodos para la presentación en pantalla de información detallada de un usuario. UsuarioDetalleTareaActivity. Contiene los métodos que permiten mostrar en pantalla la información detallada de un usuario. UsuarioListActivity. Contiene métodos que permiten mostrar un listado de usuarios pertenecientes. Utilizado para verificar los usuarios en cercanía.4.2.1.2 Paquete mx.edu.cenidet.clientetareasandroid.interfazEl paquete mx.edu.cenidet.clientetareasandroid.interfaz complementa al paquetedescrito anteriormente (4.2.1.1 mx.edu.cenidet.clientetareasandroid.activities) enel despliegue y establecimiento de la interfaz de usuario.La figura 4.21 muestra las clases pertenecientes al paquetemx.edu.cenidet.clientetareasandroid.interfaz, el cual contiene clases para eldespliegue en pantalla de listas elegibles, ventanas de dialogo y todos loselementos necesarios para la presentación visual de la interfaz al usuario. Figura 4.21 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.interfaz 65
  • 74. Capítulo 4 Análisis y diseñoLas clases del este paquete se describen a continuación: ActividadAdapter. Contiene las vistas y métodos necesarios para el despliegue de las actividades en forma de una lista. Esta clase es usada por la clase ActividadesListActivity para mostrar al usuario una lista de actividades disponibles para elegir. Dialogo. Esta clase permite mostrar en pantalla mensajes de alerta para indicar al usuario, ya sea que una acción no se realizó, o que ha sido completada exitosamente. GrupoAdapter. Proporciona métodos necesarios para presentar los grupos de usuarios en forma de una lista. Cabe destacar que esta clase es utilizada por la clase GrupoListActivity para mostrar en pantalla un listado de grupos de usuario almacenados en la base de datos. InstanciaTareaAdapter. Contiene las vistas y métodos necesarios para el despliegue de las tareas pendientes en forma de una lista. Esta clase es usada por la clase InstanciaTareaListActivity para mostrar al usuario una lista de las tareas pendientes que tiene almacenadas en la base de datos. RecursoAdapter. Proporciona métodos necesarios para presentar los recursos en forma de una lista elegible. Esta clase es usada por la clase RecursoListActivity. TipoTareaAdapter. Proporciona métodos necesarios para mostrar en un listado los tipos de tarea. Cabe destacar que esta clase es utilizada por la clase ipoTareaListActivity para mostrar en pantalla un listado de tipos de tarea a los que un usuario puede tener acceso. UbicacionAdapter. Contiene métodos para el despliegue de un listado de ubicaciones. Esta clase es usada por la clase UbicacionListActivity para mostrar al usuario una lista de las ubicaciones almacenadas en la base de datos. UsuarioAdapter. Proporciona los métodos necesarios para mostrar un listado de usuarios. Cabe destacar que esta clase es utilizada por la clase UsuarioGroupListActivity para mostrar en pantalla un listado de los usuarios pertenecientes a un grupo de usuarios. VistaGuiado. Proporciona los métodos y atributos necesarios para establecer la interfaz de la actividad de guiado y refrescar la ubicación del usuario. Es utilizada por las clases GuiadoActivity y GuiadoQRCodesActivity.Complementado los paquetes pertenecientes a la interfaz de usuario y debido a laforma de programación en Android, en donde se pueden definir las interfacesmediante archivos XML, se establecieron 8 archivos para definir las interfaces, loscuales son descritos a continuación:  captura_barras.xml. Es utilizado para definir la interfaz que permite al usuario capturar una fotografía con un código de barras y decodificarla.  detalles_instancia_tarea.xml. Es utilizado para definir la interfaz que permite al usuario capturar incidencias de alguna tarea pendiente, así como 66
  • 75. Capítulo 4 Análisis y diseño completar o cancelar la tarea, también es utilizada para consultar los detalles de una tarea.  detalles_ubicacion.xml. Define la interfaz para mostrar el detalle de una ubicación.  detalles_usuario.xml. Define la interfaz para mostrar los detalles de un usuario.  guiado.xml. Es utilizado para establecer la interfaz en el proceso de guiado.  lista.xml. Define la interfaz para el despliegue de una vista en forma de listado.  login.xml. Define la interfaz de la pantalla principal del sistema, en donde el usuario se autentifica.  nueva_tarea_recurso.xml. Define la interfaz necesaria para que un usuario establezca una nueva tarea como pendiente.El contenido de estos archivos se detalla en el anexo A.4.2.1.3 Paquete mx.edu.cenidet.clientetareasandroid.codigobarrasLa figura 4.22 muestra las clases pertenecientes al paquetemx.edu.cenidet.clientetareasandroid.codigobarras el cual hace uso de la APIZXing [Zxing 2009], la cual es utilizada para la decodificación del código de barras. Figura 4.22 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.codigobarrasEn seguida se describen a grandes rasgos las clases pertenecientes a estepaquete. CodigoBarras. Esta clase hace uso de la API ZXing para decodificar un código de barras y contiene los métodos necesarios para la utilización de dicha API y de la cámara fotográfica del dispositivo celular, quien se hará cargo de la captura de la imagen. RGBMonochromeBitmapSource. Proporciona los métodos necesarios para el tratamiento de una imagen con la finalidad de convertirla en un formato que sea más fácil de codificar por la API ZXing, para ello la imagen es convertida a monocromática (blanco y negro).En la figura 4.23 se muestra, mediante un diagrama de secuencias, el procesopara decodificar una imagen que contiene un código de barras. 67
  • 76. Capítulo 4 Análisis y diseño CodigoBarras RGBMonochromeBitmapSource Cliente 2. Conecta 1. Selecciona por barras cámara 3. Muestra imagen 4. Captura imagen 6. Convierte imagen 5. Envía imagen a monocromática 7. Envía imagen tratada 8. Decodifica imagen 9. Muestra identificador Figura 4.23 Diagrama de secuencias para la decodificación del código de barrasEl proceso de decodificación de código de barras es iniciado por el usuario cuandoquiere dar de alta una nueva tarea o quiere realizar el proceso de guiado medianteQRCodes, el usuario elige identificar a un recurso por medio de un código debarras. La clase CodigoBarras realiza la conexión con la cámara del dispositivo yel cliente captura la imagen, hecho esto la clase CodigoBarras obtiene la imagencapturada y la envía a la clase RGBMonochromeBitmapSource, la cual se encargade convertir la imagen a monocromática. Una vez que la imagen es tratada sereenvía nuevamente a la clase CodigoBarras la cual utiliza la API ZXing paradecodificar el código de barras contenido en la imagen, finalmente se envía elidentificador perteneciente al código de barras capturado.4.2.1.4 Paquete mx.edu.cenidet.clientetareasandroid.conexionhttpEn la figura 4.24 se muestran las clases pertenecientes al paquetemx.edu.cenidet.clientetareasandroid.conexionhttp. Este paquete constaúnicamente de dos clases, las cuales se describe a continuación: ConexionHTTP. Contiene los métodos necesarios para el establecimiento de peticiones POST y GET mediante el protocolo HTTP, con la finalidad de consumir los recursos ofrecidos por el servicio Web. PeticionesHTTP. Proporciona métodos y atributos necesarios para obtener objetos serializados de las peticiones mediante el protocolo HTTP. 68
  • 77. Capítulo 4 Análisis y diseño Figura 4.24 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.conexionhttpLa descripción de la conexión HTTP entre cliente y servidor se detalla en eldiagrama de secuencias de la figura 4.25. Cliente Servidor ConexionHTTP WebServiceApplication 2. Recibe petición y 1. Envía petición GET/POST redirecciona según URL 3. Envía respuesta en JSON Figura 4.25 Diagrama de secuencias comunicación cliente/servidor por HTTPLa comunicación mediante el protocolo HTTP entre el cliente y el servidor esiniciada por el cliente. La clase ConexionHTTP realiza una petición POST o GET,después, del lado del servidor, la clase WebServiceApplication, la cual hace lafunción de receptor de peticiones, recibe esta petición y según la URL solicitada, laredirecciona otra clase. Cabe destacar que éste es el diagrama de secuenciasgeneral de la comunicación HTTP entre el cliente y el servidor.4.2.1.5 Paquete mx.edu.cenidet.clientetareasandroid.objetosEn la figura 4.26 se muestran las clases pertenecientes al paquetemx.edu.cenidet.clientetareasandroid.objetos. 69
  • 78. Capítulo 4 Análisis y diseño Figura 4.26 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.objetosA continuación se describen de manera general las clases que componen estepaquete. Cabe recalcar que este paquete define los objetos que se utilizan comobase para la realización de las operaciones del cliente, entre las que destacan larecepción de objetos serializados enviados por el servidor mediante el protocoloHTTP; debido a esto no hay relación alguna entre las clases de este paquete, noobstante si las hay de este paquete con los demás paquetes. Actividad. Contiene los métodos y atributos necesarios para la creación de objetos del tipo Actividad, el cual representa una actividad para el sistema. Grupo. Proporciona los métodos y atributos para la creación de objetos del tipo Grupo, el cual representa a un grupo de usuarios. InstanciaTarea. Contiene los métodos y atributos necesarios para la creación y manipulación de objetos del tipo InstanciaTarea, el cual representa las tareas pendientes de un determinado usuario. Recurso. Proporciona los métodos y atributos para la creación de objetos del tipo Recurso, el cual representa el recurso asociado a una tarea. TipoTarea. Contiene los métodos y atributos necesarios para la creación y manipulación de objetos del tipo TipoTarea, que representa las tareas que un usuario o grupo de usuarios tiene disponibles para establecer como pendientes. Ubicacion. Proporciona los métodos y atributos para la creación de objetos del tipo Ubicacion, el cual representa una ubicación almacenada en la base de datos (en el servidor) y será utilizada en el proceso de guiado. Usuario. Contiene los métodos y atributos necesarios para la creación y manipulación de objetos del tipo Usuario, el cual representa un usuario contenido en la base de datos (en el servidor de tareas). 70
  • 79. Capítulo 4 Análisis y diseño4.2.1.6 Paquete mx.edu.cenidet.clientetareasandroid.rfidEn la figura 4.27 se muestra la clase perteneciente al paquetemx.edu.cenidet.clientetareasandroid.rfid. Únicamente cuenta con una clase la cualestablece la conexión mediante un hilo con el lector de tarjetas RFID y rec ibe laslecturas provenientes de él. Figura 4.27 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.rfidCabe destacar que actualmente los dispositivos celulares no cuentan con lectoresde tarjetas RFID. La solución que se propone es realizar una aplicación en javaque establezca conexión con el lector de tarjetas RFID, el cual esté conectado auna computadora mediante el puerto USB, de este modo el cliente Android seconectará por medio de un socket a la computadora que tiene asociado el lectorde tarjetas RFID para obtener la lectura de las tarjetas RFID al alcance. La figura4.28 muestra el diagrama de secuencias necesario para la obtención de unalectura de tarjetas RFID. ConexionRFID IntermediarioRFID LectorRFID 1. Inicia hilo de conexión 2. Recibe petición 3. Envía respuesta de conexión 4. Establece conexión 6. Inicia hilo de conexión 7. Recibe petición 8. Envía respuesta de conexión Cliente 10. Verifica conexión al 9. Establece conexión puerto 12. Envía identificador RFID 11. Obtiene lectura RFID 14. Envía identificador RFID Servidor de conexión RFID ... 15. Cierra hilo de conexión 17. Cierra hilo de conexión Figura 4.28 Diagrama de secuencias para el proceso de lectura de tarjeta RFID 71
  • 80. Capítulo 4 Análisis y diseñoEl proceso de obtención de tarjetas RFID en cercanía comienza del lado delcliente (ConexionRFID), el cual inicia un hilo de conexión por medio de un socketcon el intermediario RFID, que hará el papel de intermediario entre el cliente y ellector de tarjetas RFID. El intermediario RFID mediante la clase IntermediarioRFIDrecibe la petición y se establece la conexión, IntermediarioRFID inicia otro hilo conla clase LectorRFID la cual realiza la conexión con el lector RFID y obtiene lalectura de la tarjeta RFID en cercanía, paso siguiente LectorRFID envía elidentificador RFID, el cual es interceptado por IntermediarioRFID y retransmitido aConexionRFID (ya del lado del cliente) el cual recibe el identificador de la tarjetaRFID leída.De esta forma se pueden realizar diversas operaciones dentro del sistema, como:la identificación de recursos, la localización del dispositivo o el proceso de guiado.Este proceso es iterativo y finaliza hasta que el cliente cierra socket de conexión;mientras el hilo esté funcionando se estarán leyendo tarjetas en cercanía de laforma antes descrita.4.2.1.7 Paquete mx.edu.cenidet.clientetareasandroid.utileriasEste paquete contiene métodos para el procesamiento de imágenes, cadenas y laconfiguración propia del cliente Android.La figura 4.29 muestra las clases pertenecientes a este paquete. Figura 4.29 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.utileriasEstas clases son utilizadas por clases de otros paquetes para el procesamiento deimágenes y cadenas. Las clases de este paquete se describen a continuación: Cadenas. Contiene los métodos para el procesamiento de cadenas. Imagenes. Proporciona los métodos y atributos para el procesamiento de imágenes. ParsedDataSet. Contiene los métodos necesarios para almacenar la información del archivo de configuración XML. 72
  • 81. Capítulo 4 Análisis y diseño ParserXML. Contiene los métodos necesarios para recorrer el archivo de configuración XML. XMLRead. Contiene los métodos necesarios para interactuar con la clase ParserXML y obtener los valores de las etiquetas del archivo de configuración XML.4.2.2 Servidor de tareasEl servidor está compuesto de los siguientes paquetes: mx.edu.cenidet.servidortareasosgi.basedatos define la conexión y las consultas a la base de datos. mx.edu.cenidet.servidortareasosgi.objetos define los objetos requeridos para el establecimiento de tareas y métodos para la serialización de los objetos mediante JSON. mx.edu.cenidet.servidortareasosgi.osgi pone en marcha el servidor OSGI y publica el servicio Web, además contiene una clase que la hace de orquestador de las peticiones al servicio Web. mx.edu.cenidet.servidortareasosgi.recursosrestlet define las clases que atenderán las peticiones de los clientes al servicio Web. mx.edu.cenidet.servidortareasosgi.utilerias contiene las clases para el procesamiento de imágenes y cadenas.La figura 4.30 muestra el diagrama de paquetes pertenecientes a la parteservidora. Figura 4.30 Diagrama de paquetes del servidor4.2.2.1 Paquete mx.edu.cenidet.servidortareasosgi.basedatosEn la figura 4.31 se muestra el diagrama de las clases pertenecientes a estepaquete, el cual permite realizar las consultas y operaciones sobre la base dedatos. 73
  • 82. Capítulo 4 Análisis y diseño Figura 4.31 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.basedatosA continuación se describen de manera general las clases que componen estepaquete. Cabe recalcar que este paquete es utilizado por otros paquetes queutilizan llamadas a la base de datos dentro del servidor. Conexion. Contiene métodos y atributos que permiten la conexión con la base de datos de tareas. OperacionesBD. Proporciona la funcionalidad necesaria para actualizar, insertar o seleccionar registros en la base de datos.4.2.2.2 Paquete mx.edu.cenidet.servidortareasosgi.osgiEn la figura 4.32 se muestra el diagrama de las clases pertenecientes a estepaquete, el cual permite activar el servidor y publicar el servicio Web. Figura 4.32 Diagrama de clases del paquete mx.edu.cenidet.clientetareasandroid.osgiA continuación se describen de manera general las clases que componen estepaquete: Activator. Esta clase es necesaria debido a que se utilizará OSGI como Framework para el servidor y es mediante ella que se inicia y se detiene el servicio. WebServiceApplication. Esta aplicación sirve de orquestador entre las peticiones que realiza el cliente al servidor, es decir, es el que se encarga de redirigir las peticiones a las clases correspondientes según la URL solicitada. Previamente en el diagrama de secuencias de la figura 4.25 se ha detallado la comunicación entre el servidor y el cliente mediante el protocolo HTTP.4.2.2.3 Paquete mx.edu.cenidet.servidortareasosgi.objetosEn la figura 4.33 se visualizan las clases pertenecientes a este paquete, el cualpermite crear objetos que son necesarios para enviar de forma serializada, através del protocolo HTTP, en la comunicación entre el cliente y el servidor detareas, debido a esto no hay relación alguna entre las clases de este paquete, no 74
  • 83. Capítulo 4 Análisis y diseñoobstante si las hay de este paquete con otros paquetes dentro del servidor detareas. Figura 4.33 Diagrama de clases del paquete mx.edu.cenidet.servidortareasosgi.objetosA continuación se detallan las clases pertenecientes a este paquete: Actividad. Contiene los métodos y atributos necesarios para la creación y serialización de objetos del tipo Actividad, el cual representa una actividad para el sistema. Error. Maneja los mensajes de error enviados al cliente, los cuales se envían serializados en formato JSON. Grupo. Proporciona los métodos y atributos para la creación, manejo y serialización de objetos del tipo Grupo, el cual representa a un grupo de usuarios. InstanciaTarea. Contiene los métodos y atributos necesarios para la creación, manipulación y serialización de objetos del tipo InstanciaTarea, el cual representa las tareas pendientes de un determinado usuario. Recurso. Proporciona los métodos y atributos para la creación, manejo y serialización de objetos del tipo Recurso, el cual representa el recurso asociado a una tarea. TipoTarea. Contiene los métodos y atributos necesarios para la creación, manipulación y serialización de objetos del tipo TipoTarea, las tareas que un usuario o grupo de usuarios tiene disponibles para establecer como pendientes. 75
  • 84. Capítulo 4 Análisis y diseño Ubicacion. Proporciona los métodos y atributos para la creación, manejo y serialización de objetos del tipo Ubicacion, el cual representa una ubicación almacenada en la base de datos. Usuario. Contiene los métodos y atributos necesarios para la creación, manipulación y serialización de objetos del tipo Usuario, el cual representa un usuario contenido en la base de datos.4.2.2.4 Paquete mx.edu.cenidet.servidortareasosgi.utileriasEste paquete contiene métodos para el procesamiento de cadenas.La figura 4.34 muestra las clases pertenecientes a este paquete. Constaúnicamente de una clase la cual es utilizada por clases de otros paquetes para elprocesamiento de cadenas. Figura 4.34 Diagrama de clases del paquete mx.edu.cenidet.servidortareasosgi.utilerias4.2.2.5 Paquete mx.edu.cenidet.servidortareasosgi.recursosrestletEste paquete contiene métodos que atenderán las peticiones al servicio Web porparte de los clientes. La figura 4.35 detalla las clases que incluye este paquete.Cabe mencionar que no existen relaciones entre clases de este paquete, sinembargo si las hay entre clases de este paquete y otros paquetes dentro delservidor de tareas. Figura 4.35 Diagrama de clases del paquete mx.edu.cenidet.servidortareasosgi.recursosrestletLas clases de este paquete se describen a continuación, debido a la relevancia deeste paquete el diseño de las clases se hará con más detalle que los anteriores,tomando en cuenta casos de diseño. 76
  • 85. Capítulo 4 Análisis y diseño4.2.3 Interacción cliente-servidor4.2.3.1 Autentificación del usuarioEl proceso de autentificación se desarrolla de la siguiente forma: El proceso comienza cuando el usuario inicia la aplicación. La clase LoginActivity es la primera en cargarse y ésta se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo login.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar. De este modo se carga la pantalla de autenticación, pidiendo al usuario su clave y su contraseña. El usuario captura la clave y la contraseña. LoginActivity forma la URL de petición con la clave y la contraseña y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es proporcionado por el servidor de tareas mediante la clase WebServiceApplication; dicha clase recibe la petición y dependiendo la URL solicitada, redirecciona la petición a la clase correspondiente, en este caso UsuarioResource. UsuarioResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL. UsuarioResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos. OperacionesBD recibe la conexión y realiza la consulta del usuario por medio de su clave y contraseña en la base de datos. Hecho esto, cierra la conexión con la base de datos, para después crear un objeto de tipo Usuario con la información recibida, lo cual se realiza mediante la clase Usuario. Usuario se encarga de serializar el objeto de este mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase UsuarioResource. UsuarioResource recibe el objeto Usuario serializado y lo reenvía por medio de HTTP al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un objeto de tipo Usuario a la clase LoginActivity. LoginActivity verifica que ha recibido un objeto de tipo Usuario y permite al usuario ingresar al sistema, mostrando la pantalla de detalles del usuario.Cabe destacar que esto se realiza antes de cada uno de los procesos, es por elloque se excluirá esta parte en la explicación individual de cada uno de ellos. En lafigura 4.36 se describe mediante un diagrama de secuencias, el proceso deautenticación del usuario, tomando en cuenta la comunicación entre el cliente y elservidor de tareas. 77
  • 86. Capítulo 4 Análisis y diseño LoginActivity ConexionHTTP WebServiceApplication UsuarioResource OperacionesBD Conexion UsuarioUsuario 1. Inicia aplicación 2. Carga Intent 3. Despliega interfaz 4. Captura usuario y contraseña 5. URL de petición Servidor de 7. Redirección a clase tareas 6. Envía petición GET con UsuarioResource usuario y contraseña 9. Redirección a 8. Envía URL con usuario método GET y contraseña 10. Forma consulta SQL Cliente 11. Establece conexión con BD 12. Conexión a BD 13.Consulta usuario y contraseña 15. Cierra 14. Cierra conexión conexión con BD 17. Serializa 16. Envía información obtenida Objeto 19. Envía objeto de tipo Usuario serializado en JSON 18. Envía objeto de tipo Usuario serializado en JSON 20. Envía resultados 22. Despliega pantalla de detalles de usuario 21. Valida resultados Figura 4.36 Diagrama de secuencias para la autenticación del usuario 78
  • 87. Capítulo 4 Análisis y diseño4.2.3.2 Consulta de tareas pendientesEl proceso de consulta de tareas pendientes se describe detalladamente acontinuación: Previamente a este proceso el usuario se debe haber autentificado. El proceso inicia cuando el usuario selecciona la opción de tareas pendientes. La clase InstanciaTareaListActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo lista.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar. InstanciaTareaListActivity forma la URL de petición incluyendo en ella la clave del usuario y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso InstanciaTareaResource. InstanciaTareaResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL en donde se filtran las tareas pendientes del usuario. InstanciaTareaResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos. OperacionesBD recibe la conexión y realiza la consulta de las tareas pendientes del usuario en la base de datos. Hecho esto, cierra la conexión con la base de datos, para después crear un arreglo de objetos de tipo InstanciaTarea con la información recibida de la consulta a la base de datos, lo cual se realiza mediante la clase InstanciaTarea. InstanciaTarea se encarga de serializar los objetos de este mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase InstanciaTareaResource. InstanciaTareaResource recibe el arreglo de objetos InstanciaTarea serializado y lo reenvía al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un arreglo de objetos de tipo InstanciaTarea a la clase InstanciaTareaListActivity. InstanciaTareaListActivity verifica los objetos recibidos y los utiliza para formar un listado elegible de tareas pendientes.Cabe destacar que este proceso se realiza antes de completar y cancelar unatarea, por lo que se omitirá en la explicación de estas operaciones.En la figura 4.37 se describe mediante un diagrama de secuencias, el proceso quese sigue para la realización de consulta de tareas pendientes. 79
  • 88. Capítulo 4 Análisis y diseño InstanciaTareaListActivity ConexionHTTP WebServiceApplication InstanciaTareaResource OperacionesBD Conexion InstanciaTareaUsuario 1. Selecciona 2. Carga Intent tareas pendientes 3. Envía URL de petición con clave de usuario 5. Redirección a clase InstanciaTareaResource 4. Envía petición GET con clave de usuario Servidor de 6. Envía URL 7. Redirección a tareas método GET 8. Forma consulta SQL 9. Establece conexión con BD 10. Conexión a BD Cliente 11.Consulta tareas pendientes del usuario 13. Cierra 12. Cierra conexión conexión con BD 15. Serializa arreglo de 14. Envía información obtenida objetos 17. Envía arreglo de objetos InstanciaTarea serializados en JSON 16. Envía arreglo de objetos de tipo InstanciaTarea serializados en JSON 18. Envía resultados 20. Despliega listado de tareas 19. Valida resultados Figura 4.37 Diagrama de secuencias para la consulta de tareas pendientes 80
  • 89. Capítulo 4 Análisis y diseño4.2.3.3 Consultar el detalle de una tarea pendienteEl proceso de consulta del detalle de una tarea se describe a continuación: Previo a esto el usuario se debe haber autentificado y haber consultado el listado de tareas pendientes. El proceso inicia cuando el usuario selecciona del listado de tareas pendientes una tarea específica. La clase InstanciaTareaDetalleActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo detalles_instancia_tarea.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar. InstanciaTareaDetalleActivity forma la URL de petición e incluye en ella la clave de usuario y el identificador de la tarea y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso InstanciaTareaResource. InstanciaTareaResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL. InstanciaTareaResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos. OperacionesBD recibe la conexión y realiza la consulta de la tarea pendiente del usuario en la base de datos. Hecho esto, cierra la conexión con la base de datos, para después crear un objeto de tipo InstanciaTarea con la información recibida de la consulta a la base de datos, lo cual se realiza mediante la clase InstanciaTarea. InstanciaTarea se encarga de serializar el objeto del mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase InstanciaTareaResource. InstanciaTareaResource recibe el objeto InstanciaTarea serializado y lo reenvía al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un objeto de tipo InstanciaTarea a la clase InstanciaTareaDetalleActivity. InstanciaTareaDetalleActivity verifica el objeto recibido y lo utiliza para formar la interfaz del detalle de la tarea pendiente.En la figura 4.38 se describe mediante un diagrama de secuencias, el proceso quese sigue para consultar el detalle de una tarea pendiente. 81
  • 90. Capítulo 4 Análisis y diseño InstanciaTareaDetalleActivity ConexionHTTP WebServiceApplication InstanciaTareaResource OperacionesBD Conexion InstanciaTareaUsuario 1. Elegir una tarea 2. Carga Intent pendiente 3. Envía URL de petición con clave de tarea 5. Redirección a clase InstanciaTareaResource 4. Envía petición GET con clave de tarea Servidor de 7. Redirección a tareas 6. Envía URL método GET 8. Forma consulta SQL 9. Establece conexión con BD 10. Conexión a BD Cliente 11.Consulta tarea elegida 13. Cierra 12. Cierra conexión conexión con BD 15. Serializa objeto 14. Envía información obtenida 17. Envía objeto de tipo InstanciaTarea serializado en JSON 16. Envía objeto de tipo InstanciaTarea serializado en JSON 18. Envía resultados 20. Despliega detalle de tarea 19. Valida resultados Figura 4.38 Diagrama de secuencias para la consulta del detalle de una tarea 82
  • 91. Capítulo 4 Análisis y diseño4.2.3.4 Completar/Cancelar una tarea pendienteEl proceso de cancelar o completar una tarea se describe a continuación: Previo a esto el usuario se debe haber autentificado y haber consultado el listado de tareas pendientes, además de elegir el detalle de una tarea. El proceso inicia cuando el usuario elige completar/cancelar una tarea. InstanciaTareaDetalleActivity forma la URL de petición incluyendo el identificador de la tarea y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición POST al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso InstanciaTareaResource. InstanciaTareaResource recibe la petición POST y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la instrucción en SQL indicando la actualización del estado de la tarea. InstanciaTareaResource instancia la clase OperacionesBD enviándole la instrucción SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el resultado de la operación (éxito o fracaso). OperacionesBD recibe la respuesta de la operación realizada en la base de datos y reenvía la respuesta mediante un código HTTP al cliente, el cual recibe esta respuesta por medio de la clase ConexionHTTP. ConexionHTTP recibe la respuesta y lo traduce en un mensaje para el usuario, en donde le indica que la tarea fue completada o cancelada exitosamente.Cabe destacar que el proceso de completar una tarea difiere únicamente en losiguiente con el proceso de cancelarla: al completar una tarea, el estado de latarea se actualiza a ―C‖ y al cancelarla se actualiza a ―X‖.En la figura 4.39 se describe mediante un diagrama de secuencias, el proceso quese sigue para completar o cancelar una tarea pendiente. 83
  • 92. Capítulo 4 Análisis y diseño InstanciaTareaDetalleActivity ConexionHTTP WebServiceApplication InstanciaTareaResource OperacionesBD ConexionUsuario 1. Elegir Completar/ Cancelar tarea 2. Envía URL de petición con clave de tarea 4. Redirección a clase 3. Envía petición POST con clave de tarea InstanciaTareaResource 6. Redirección a 5. Envía URL método POST Servidor de tareas 7. Forma sentencia de actualización SQL 8. Establece conexión con BD 9. Conexión a BD 10.Actualiza campo estado de tarea elegida Cliente (―C‖, ―X‖) 12. Cierra 11. Cierra conexión conexión con BD 14. Código 200 en HTTP 13. Actualización correcta 15. Mensaje de éxito 16. Mensaje de tarea Completa/Cancelada Figura 4.39 Diagrama de secuencias para la operación de completar o cancelar una tarea 84
  • 93. Capítulo 4 Análisis y diseño4.2.3.5 Dar de alta una nueva tarea (establecer tarea como pendiente)Este proceso es un tanto complejo y se divide en los siguientes subprocesos:1. Obtener un listado de actividades disponibles para el usuario.2. Obtener un listado de tareas disponibles para elegir según la actividad que se haya escogido en el paso anterior.3. Elegir un recurso por medio del código de barras o por RFID y establecer la tarea como pendiente.Obtener un listado de actividades disponibles para el usuario El proceso inicia cuando el usuario selecciona la opción de crear una nueva tarea. La clase ActividadesListActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo lista.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar. ActividadesListActivity forma la URL de petición incluyendo en ella la clave del usuario y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso ActividadResource. ActividadResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL en donde se filtran las actividades que tiene disponible el usuario. ActividadResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos. OperacionesBD recibe la conexión y realiza la consulta de las actividades disponibles para el usuario, almacenadas en la base de datos. Hecho esto, cierra la conexión con la base de datos, para después crear un arreglo de objetos de tipo Actividad con la información recibida de la consulta a la base de datos, lo cual se realiza mediante la clase Actividad. Actividad se encarga de serializar los objetos de este mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase ActividadResource. Esta última recibe el arreglo de objetos Actividad serializado y lo reenvía al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un arreglo de objetos de tipo Actividad a la clase ActividadListActivity. ActividadListActivity verifica los objetos recibidos y los utiliza para formar un listado elegible de actividades disponibles para el usuario.En la figura 4.40 se muestra el diagrama de secuencias perteneciente a laobtención de un listado de actividades disponibles para el usuario. 85
  • 94. Capítulo 4 Análisis y diseño ActividadesListActivity ConexionHTTP WebServiceApplication ActividadResource OperacionesBD Conexion ActividadUsuario 1. Selecciona 2. Carga Intent nueva tarea 3. Envía URL de petición con clave de usuario 5. Redirección a clase ActividadResource 4. Envía petición GET con clave de usuario Servidor de 6. Envía URL 7. Redirección a tareas método GET 8. Forma consulta SQL 9. Establece conexión con BD 10. Conexión a BD Cliente 11.Consulta actividades disponibles para el usuario 13. Cierra 12. Cierra conexión conexión con BD 15. Serializa arreglo de 14. Envía información obtenida objetos 17. Envía arreglo de objetos Actividad serializados en JSON 16. Envía arreglo de objetos de tipo Actividad serializados en JSON 18. Envía resultados 20. Despliega listado de actividades disponibles 19. Valida resultados Figura 4.40 Diagrama de secuencias para la obtención de un listado de actividades disponibles para el usuario 86
  • 95. Capítulo 4 Análisis y diseñoObtener un listado de tareas disponibles para elegir según la actividad quese haya escogido en el paso anteriorUna vez obtenido el listado de actividades, el siguiente paso es elegir una de ellasy esto llevará a obtener un listado de tareas disponibles de acuerdo al usuario y ala actividad elegida. Previamente a este proceso el usuario se debe haber autentificado y haber consultado el listado de actividades disponibles. El proceso inicia cuando el usuario selecciona una actividad. La clase TipoTareaListActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo lista.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar. TipoTareaListActivity forma la URL de petición incluyendo en ella la clave del usuario y la clave de la actividad elegida previamente y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso TipoTareaResource. TipoTareaResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL en donde se filtran las tareas disponibles de acuerdo a la actividad y al usuario. TipoTareaResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos.OperacionesBD recibe la conexión y realiza la consulta de las tareas disponibles para el usuario, almacenadas en la base de datos. Hecho esto, cierra la conexión con la base de datos, para después crear un arreglo de objetos de tipo TipoTarea con la información recibida de la consulta a la base de datos, lo cual se realiza mediante la clase TipoTarea. TipoTarea se encarga de serializar los objetos de este mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase TipoTareaResource. TipoTareaResource recibe el arreglo de objetos TipoTarea serializado y lo reenvía al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un arreglo de objetos de tipo TipoTarea a la clase TipoTareaListActivity. Esta última verifica los objetos recibidos y los utiliza para formar un listado elegible de tareas disponibles para el usuario.En la figura 4.41 se muestra el diagrama de secuencias perteneciente a laobtención de un listado de tareas disponibles para el usuario. 87
  • 96. Capítulo 4 Análisis y diseño TipoTareaListActivity ConexionHTTP WebServiceApplication TipoTareaResource OperacionesBD Conexion TipoTareaUsuario 1. Selecciona 2. Carga Intent actividad 4. Envía petición GET 3. Envía URL de petición con clave de usuario 5. Redirección a clase con clave de usuario y y clave de actividad TipoTareaResource clave de actividad Servidor de 6. Envía URL 7. Redirección a tareas método GET 8. Forma consulta SQL 9. Establece conexión con BD 10. Conexión a BD Cliente 11.Consulta tareas disponibles para el usuario 13. Cierra 12. Cierra conexión conexión con BD 15. Serializa arreglo de 14. Envía información obtenida objetos 17. Envía arreglo de objetos TipoTarea serializados en JSON 16. Envía arreglo de objetos de tipo TipoTarea serializados en JSON 18. Envía resultados 20. Despliega listado de tareas disponibles 19. Valida resultados Figura 4.41 Diagrama de secuencias para la obtención de un listado de tareas disponibles para el usuario 88
  • 97. Capítulo 4 Análisis y diseñoElegir un recurso por medio del código de barras o por RFID y establecer latarea como pendienteEl siguiente paso para la creación de una nueva tarea pendiente consiste en elegirun recurso, o bien por código de barras, o bien por una lectura RFID, estosprocesos fueron explicados en las figuras 4.23 y 4.28 respectivamente, por ellosólo se abstraerá este proceso para la explicación del siguiente paso: elestablecimiento de la tarea como pendiente. Previo a esto el usuario se debe haber autentificado, haber consultado el listado de actividades disponibles y haber consultado los tipos de tareas disponibles. El proceso inicia cuando el usuario elige un tipo de tarea disponible. La clase NuevaTareaActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo nueva_tarea_recurso.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar, dicha interfaz es la que se muestra al usuario. El usuario elige la fecha en la que desea completar la tarea y elige el recurso asociado a la tarea, o bien por código de barras, o bien por RFID. NuevaTareaActivity forma la URL de petición incluyendo el identificador del tipo de tarea, el identificador del usuario, la clave del recurso y la fecha, y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición POST al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso InstanciaTareaResource, esta clase recibe la petición POST y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la instrucción de inserción SQL, en donde se especifica la inserción de un nuevo registro como tarea pendiente del usuario. InstanciaTareaResource instancia la clase OperacionesBD enviándole la instrucción SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el resultado de la operación (éxito o fracaso). OperacionesBD recibe la respuesta de la operación realizada en la base de datos y reenvía la respuesta mediante un código HTTP al cliente, el cual recibe esta respuesta por medio de la clase ConexionHTTP. ConexionHTTP recibe la respuesta y lo traduce en un mensaje para el usuario, en donde le indica que la tarea almacenada exitosamente.En la figura 4.42 se describe el proceso que se sigue para establecer una tareacomo pendiente. 89
  • 98. Capítulo 4 Análisis y diseño NuevaTareaActivity ConexionHTTP WebServiceApplication InstanciaTareaResource OperacionesBD ConexionUsuario 1. Elegir tipo de 2. Carga intent tarea 3. Desplegar interfaz 5. Envía URL de petición 4. Selecciona fecha y con clave de tipo de 6. Envía petición POST recurso tarea y clave de usuario 7. Redirección a clase con clave del tipo de tarea y clave de usuario InstanciaTareaResource Servidor de 9. Redirección a 8. Envía URL método POST tareas 10. Forma sentencia de inserción SQL 11. Establece conexión con BD 12. Conexión a BD Cliente 13. Inserta registro de tarea pendiente en BD 15. Cierra 14. Cierra conexión conexión con BD 17. Código 200 en HTTP 16. Actualización correcta 18. Mensaje de éxito 19. Mensaje de tarea Almacenada Figura 4.42 Diagrama de secuencias para la operación establecer una tarea como pendiente (nueva tarea) 90
  • 99. Capítulo 4 Análisis y diseño4.2.3.6 Tarea de guiadoEste proceso se divide en varias actividades las cuales se listan a continuación: 1)Obtener un listado de actividades disponibles para el usuario, 2) Obtener unlistado de tareas disponibles para elegir según la actividad que se haya escogidoen el paso anterior, 3) Obtener la ubicación actual del dispositivo, 4) Obtener unlistado de ubicaciones para elegir hacia donde se quiere realizar el guiado y 5)Proceso de guiado. Las dos primeras actividades ya han sido descritasanteriormente (ver figuras 4.40 y 4.41).Obtener la ubicación actual del dispositivo El proceso inicia cuando el usuario elije la actividad de guiado. La clase GuiadoActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo guiado.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar, dicha interfaz es la que se muestra al usuario. GuiadoActivity instancia la clase ConexionRFID, la cual es la encargada de verificar el entorno en busca de tarjetas RFID en cercanía. Una vez que ConexionRFID ha leído alguna tarjeta, envía el identificador a GuiadoActivity, esta clase por su parte forma la URL de petición incluyendo el identificador RFID leído y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada la redirecciona a la clase correspondiente, en este caso UbicacionResource. UbicacionResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL en donde se consulta la ubicación que corresponde con el identificador RFID en la base de datos. UbicacionResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos. OperacionesBD recibe la conexión y realiza la consulta de la ubicación por medio del identificador RFID. Hecho esto, cierra la conexión con la base de datos, para después crear un objeto de tipo Ubicacion con la información recibida de la consulta a la base de datos, lo cual se realiza mediante la clase Ubicacion. Este último se encarga de serializar el objeto de este mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase UbicacionResource. UbicacionResource recibe el objeto Ubicacion serializado y lo reenvía al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un objeto de tipo Ubicacion a la clase GuiadoActivity, la cual verifica el objeto recibido y los utiliza para escribir en pantalla la ubicación actual del usuario. En la figura 4.43 se muestra el proceso de obtención de la posición actual del dispositivo. 91
  • 100. Capítulo 4 Análisis y diseño GuiadoActivity ConexionRFID ConexionHTTP WebServiceApplication UbicacionResource OperacionesBD Conexion UbicacionUsuario 1. Selecciona 2. Carga Intent ubicación 3. Obtiene tarjetas RFID 4. Lee tarjeta en cercanía RFID 5. Identificador de tarjeta RFID Servidor de 6. Forma URL con identificador RFID tareas 7. Envía petición GET 8. Redirección a clase con identificador RFID UbicacionResource 10. Redirección 9. Envía URL a método GET 11. Forma consulta SQL 12. Establece conexión con BD Cliente 13. Conexión a BD 14.Consulta Ubicación con identificador RFID 16. Cierra conexión con BD 15. Cierra conexión 18. Serializa el objeto 17. Envía información obtenida 20. Envía objeto Ubicacion serializado en JSON 19. Envía objeto de tipo Ubicacion serializado en JSON 21. Envía resultados 23. Despliega ubicación actual 22. Valida resultados Figura 4.43 Diagrama de secuencias para la operación obtener la ubicación actual del dispositivo 92
  • 101. Capítulo 4 Análisis y diseñoObtener un listado de ubicaciones para elegir hacia donde se quiere realizarel guiadoEl siguiente paso para llevar a cabo el proceso de guiado es la obtención de unlistado de ubicaciones dentro del campus. El proceso inicia cuando se obtiene la posición actual del usuario. La clase UbicacionListActivity se encarga de lanzar el intent que contiene la interfaz gráfica, además de llamar al archivo lista.xml (ver anexo A, para mayor detalle), el cual contiene la descripción de la interfaz a utilizar. UbicacionListActivity forma la URL de petición de ubicaciones y la envía a ConexionHTTP. ConexionHTTP recibe la URL y envía una petición GET al servicio Web, el cual es ofrecido por el servidor de tareas mediante la clase WebServiceApplication, dicha clase recibe la petición y dependiendo la URL solicitada redirecciona la petición a la clase correspondiente, en este caso UbicacionResource. UbicacionResource recibe la petición GET y la redirecciona al método que corresponde con esta petición. Dentro de esta función se formula la cadena con la consulta SQL en donde se consultan las ubicaciones almacenadas en la base de datos. UbicacionResource instancia la clase OperacionesBD enviándole la consulta SQL. OperacionesBD realiza la conexión a la base de datos mediante la clase Conexion, esta última devuelve el objeto de conexión con la base de datos. OperacionesBD recibe la conexión y realiza la consulta de las ubicaciones almacenadas en la base de datos. Hecho esto, cierra la conexión con la base de datos, para después crear un arreglo de objetos de tipo Ubicacion con la información recibida de la consulta a la base de datos, lo cual se realiza mediante la clase Ubicacion. Ubicacion se encarga de serializar los objetos de este mismo tipo, utilizando el formato de representación JSON, y envía esta información a la clase UbicacionResource. UbicacionResource recibe el arreglo de objetos Ubicacion serializado y lo reenvía al cliente, el cual lo recibe mediante la clase ConexionHTTP. ConexionHTTP recibe la información serializada y envía los resultados en forma de un arreglo de objetos de tipo Ubicacion a la clase UbicacionListActivity. UbicacionListActivity verifica los objetos recibidos y los utiliza para formar un listado elegible de ubicaciones.La figura 4.44 muestra el diagrama de secuencias para este proceso. 93
  • 102. Capítulo 4 Análisis y diseño UbicacionListActivity ConexionHTTP WebServiceApplication UbicacionResource OperacionesBD Conexion UbicacionUsuario 1. Selecciona 2. Carga Intent tarea de guiado 5. Redirección a clase 3. Envía URL de petición 4. Envía petición GET UbicacionResource de ubicaciones de ubicaciones Servidor de 6. Envía URL 7. Redirección a tareas método GET 8. Forma consulta SQL 9. Establece conexión con BD 10. Conexión a BD Cliente 11.Consulta ubicaciones en la BD 13. Cierra 12. Cierra conexión conexión con BD 15. Serializa arreglo de 14. Envía información obtenida objetos 17. Envía arreglo de objetos Ubicacion serializados en JSON 16. Envía arreglo de objetos de tipo Ubicacion serializados en JSON 18. Envía resultados 20. Despliega listado de ubicaciones 19. Valida resultados Figura 4.44 Diagrama de secuencias para la operación de obtener un listado de ubicaciones 94
  • 103. Capítulo 4 Análisis y diseñoProceso de guiadoEl siguiente paso es el proceso de guiado, en el que se indicará al usuario en todomomento su posición y la posición del destino elegido. La figura 4.45 muestra elproceso de guiado con RFID mediante un diagrama de secuencias. Mucha de lafuncionalidad aquí mostrada se abstraerá de los procesos mostradosanteriormente, lo cual se hizo con la finalidad de obtener diagramas más legibles yentendibles. Cabe destacar que la parte resaltada en oscuro se repite tantas vecescomo se actualice la posición actual del usuario sin llegar al destino elegido. GuiadoActivity ConexionRFID Usuario Servidor 1. Inicia hilo de conexión 2. Lee tarjeta RFID 3. Identificador 4. Verifica si es destino 7. Refresca el plano y 5. Consulta ubicación coordenadas de posición actual y 6. Ubicación, destino coordenadas y plano 8. Camina a otra 10. Lee tarjeta posición 9. Consulta ubicación RFID 11. Identificador 12. Verifica si es destino ... 13. Ha llegado al destino 14. Cierra conexión Figura 4.45 Diagrama de secuencias de la tarea de guiado por RFIDEl proceso mostrado en la figura 4.45 se describe de la siguiente manera: 1. GuiadoActivity inicia un hilo de conexión con ConexionRFID. 2. ConexionRFID lee las tarjetas que tiene en cercanía y se obtiene la ubicación actual del usuario. 3. GuiadoActivity muestra al usuario el plano con su ubicación actual y la ubicación destino elegida. 4. El Usuario entonces camina hacia otra ubicación. Una vez que el usuario realiza esto, GuiadoActivity verifica la posición actual con ayuda de la clase ConexionRFID. Los pasos 3 y 4 se repiten hasta que el usuario camina hasta la posición destino. 5. Finalmente GuiadoActivity informa al usuario que ha llegado a su destino. 95
  • 104. Capítulo 4 Análisis y diseñoEl proceso de guiado puede llevarse a cabo también mediante la lectura decódigos de barras, la figura 4.46 muestra el proceso de guiado mediante códigosde barras. GuiadoQRcodesActivity CodigoBarras Usuario Servidor 2. Decodifica el 1. Inicia cámara código de barras 3. Identificador 4. Verifica si es destino 7. Refresca el plano y 5. Consulta ubicación coordenadas de posición actual y 6. Ubicación, destino coordenadas y plano 8. Captura fotografía 10. Decodifica el 9. Envía fotografía código de barras 11. Identificador 12. Verifica si es destino ... 13. Ha llegado al destino Figura 4.46 Diagrama de secuencias de la tarea de guiado con QRCodesEl proceso mostrado en la figura 4.46 se describe de la siguiente manera: 1. GuiadoQRCodesActivity inicia la cámara y envía la fotografía con el código de barras a CodigoBarras. 2. CodigoBarras decodifica el código de barras y envía el identificador a GuiadoQRCodesActivity, este último obtiene la ubicación actual del usuario. 3. GuiadoQRCodesActivity muestra al usuario el plano con su ubicación actual y la ubicación destino elegida. 4. El Usuario entonces captura otra fotografía. Los pasos 2, 3 y 4 se repiten hasta que el usuario captura el código de barras correspondiente al destino elegido. 5. Finalmente GuiadoQRCodesActivity informa al usuario que ha llegado a su destino.4.2.4 Diseño de las URLSe establecieron las siguientes URL dinámicas válidas para la comunicaciónmediante el protocolo HTTP entre el cliente y el servidor. 96
  • 105. Capítulo 4 Análisis y diseñoLas siguientes son URL manejadas por la clase UbicacionResource.  http://<IP_o_dominio>/ubicaciones/campus/{idcampus}. Se utiliza en una petición GET para obtener un listado de ubicaciones dentro del campus con clave {idcampus}.  http://<IP_o_dominio>/ubicaciones/campus/{idcampus}/rfid/{esrfid}. Se utiliza en una petición GET para obtener un listado de ubicaciones dentro del campus con clave {idcampus}, las cuales tienen asociada una tarjeta rfid.  http://<IP_o_dominio>/ubicaciones/campus/{idcampus}/qrcodes/{esqrcode}. Se utiliza en una petición GET para obtener un listado de ubicaciones dentro del campus con clave {idcampus}, las cuales tienen asociado un código de barras.  http://<IP_o_dominio>/ubicaciones/{idubicacion}. Se utiliza con GET para obtener la ubicación con clave {idubicacion}.  http://<IP_o_dominio>/ubicaciones/{idubicacion}. Se utiliza con GET para obtener la ubicación asociada al QRcode con identificador {qrcode}  http://<IP_o_dominio>/ubicaciones/rfid/{rfid}. Se utiliza con GET para obtener la ubicación asociada con la tarjeta RFID con identificador {rfid}.  http://<IP_o_dominio>/ubicaciones/escaleras/plano/{idplano}. Se utiliza con GET para obtener la ubicación definida como escaleras en el plano con clave {idplano}.  http://<IP_o_dominio>/ubicaciones/contexto/{etiquetas}. Se utiliza para obtener un listado de ubicaciones que se asocien con las etiquetas con identificadores {etiquetas}.  http://<IP_o_dominio>/ubicaciones/edificio/{idedificio}. Se utiliza para obtener la ubicación del edificio con identificador {idedificio}.A continuación se listan las URL administradas por la claseInstanciaTareaResource.  http://<IP_o_dominio>/users/{idusuario}/tareas/. Permite, por medio de GET, consultar todas las tareas pendientes del usuario con identificador {idusuario}.  http://<IP_o_dominio>/users/{idusuario}/tareas/contexto/{etiquetas}. Permite, a través de una petición GET, consultar las tareas pendientes que tengan objetos asociados a las tarjetas RFID con identificadores {etiquetas}.  http://<IP_o_dominio>/users/{idusuario}/tareas/fecha/{porFecha}. Permite, a través de una petición GET, consultar las tareas pendientes que tengan como fecha {porFecha}.  http://<IP_o_dominio>/users/{idusuario}/tareas/fecha/{porFecha}/hora/{porH ora}. Permite, a través de una petición GET, consultar las tareas pendientes que tengan como fecha {porFecha} y como hora {porHora}.  http://<IP_o_dominio>/users/{idusuario}/tareas/{idinstanciatarea}. Permite, a través de una petición GET, consultar la tarea pendiente con clave {idinstanciatarea} del usuario con identificador {idusuario}. 97
  • 106. Capítulo 4 Análisis y diseño  http://<IP_o_dominio>/users/{idusuario}/tareas/{idinstanciatarea}/incidencia/ {incidencia}. Una petición POST a esta URL nos permitirá actualizar las incidencias a {incidencia} de la tarea con clave {idinstanciatarea} para el usuario {idusuario}.  http://<IP_o_dominio>/users/{idusuario}/tareas/{idinstanciatarea}/estado/{est ado}/incidencia/{incidencia}. Una petición POST a esta URL nos permitirá actualizar las incidencias a {incidencia} y cambiar de estado la tarea a {estado} de la tarea con clave {idinstanciatarea} para el usuario {idusuario}.  http://<IP_o_dominio>/users/{idusuario}/tareas/{idinstanciatarea}/modiFecha /{modiFecha}/modiHora/{modiHora}. Una petición POST a esta URL nos permitirá modificar la fecha y hora a {modiFecha}, {modiHora} de la tarea con clave {idinstanciatarea} para el usuario {idusuario}.  http://<IP_o_dominio>/users/{idusuario}/tareas/{idtipotarea}/guardarinstanci a/asociado/{asociado}/idasociado/{idasociado}/tipoasociado/{tipoasociado}/r fid_asociado/{rfid_asociado}/fecha/{fecha}/hora/{hora}. Una petición POST en esta URL permite establecer una tarea como pendiente, la tarea se establecerá del tipo {idtipotarea} para el usuario {idusuario}, se asignará el objeto con identificador {idasociado}, descripción {asociado}, tipo {tipoasociado} y RFID {rfid_asociado}. La fecha y hora para completarla se serán {fecha}{hora}.En seguida se describe la URL manejada por la clase ActividadResource.  http://<IP_o_dominio>/users/{idusuario}/grupos/{idgrupo}/actividad/. Si se usa con GET, permite obtener un listado de actividades disponibles para el usuario {idusuario}, perteneciente al grupo {idgrupo}.Las peticiones a la siguiente URL son administradas por la claseTipoTareaResource.  http://<IP_o_dominio>/users/{idusuario}/grupos/{idgrupo}/actividad/{idactivid ad}/tareas/. Al realizar una petición GET a esta URL se obtendrá un listado de tipos de tareas dentro de la actividad {idactividad}, a las cuales el usuario con clave {idusuario} y grupo {idgrupo} puede tener acceso.A continuación se describen las URL que administra la clase RecursoResource.  http://<IP_o_dominio>/users/{idusuario}/tareas/{idtipotarea}/recursos/{idrecu rso}. Al realizar una petición GET a esta URL se obtendrá el recurso con clave {idrecurso} asociado con el tipo de tarea {idtipotarea}, la cual está asignada al usuario {idusuario}.  http://<IP_o_dominio>/recursos/{idrecurso}. Al realizar una petición GET a esta URL se obtendrá el recurso con clave {idrecurso}.  http://<IP_o_dominio>/qrcode/{qrcode}. Al realizar una petición GET a esta URL se obtendrá el recurso con asociado al QRcode con identificador {qrcode}. 98
  • 107. Capítulo 4 Análisis y diseño  http://<IP_o_dominio>/recursos/atributos/{idrecurso_atributos}. Se obtendrán los atributos del recurso con clave {idrecurso_atributos}.  http://<IP_o_dominio>/recursos/contexto/{etiquetas}. Al realizar una petición GET a esta URL se obtendrán los recursos asociados a las etiquetas {etiquetas}.Las siguientes URL son manejadas por la clase UsuarioResource.  http://<IP_o_dominio>/users/. Con GET, obtiene todos los usuarios.  http://<IP_o_dominio>/users/{idusuario}. Con GET, obtiene los detalles del usuario con clave {idusuario}.  http://<IP_o_dominio>/users/qrcode/{qrcode}. Con GET, obtiene los detalles del usuario asociado al QRcode con identificador {qrcode}.  http://<IP_o_dominio>/users/login/{login}/password/{password}. Utilizado con GET, obtiene los detalles del usuario con login {login} y contraseña {password}.  http://<IP_o_dominio>/users/contexto/{etiquetas}. Permite obtener mediante una petición GET, un listado de los usuarios pertenecientes asociados a las etiquetas {etiquetas}.La URL que a continuación se muestra es administrada por la claseGrupoResource.  http://<IP_o_dominio>/grupos/. Con una petición GET, obtiene un listado de los todos los grupos de usuario almacenados en la base de datos.4.2.5 Diseño del modelo de la base de datosLa aplicación contará con una base de datos, la cual almacenará información delos recursos, los usuarios, las tareas y las ubicaciones que servirán en losprocesos del sistema.La figura 4.47 muestra el modelo de la base de datos. 99
  • 108. Capítulo 4 Análisis y diseño Figura 4.47 Modelo físico de la base de datosLa definición de las relaciones se describe a continuación:Gestión de tareas  actividad. Almacenará las actividades, una actividad contiene 0 o más tarea.  tipoTarea. Contiene la descripción de los tipos de tareas, en esta relación se establecerán las tareas que un usuario puede instanciar para ponerlas como pendientes.  requerimientos. Almacenará los requisitos que necesita una tarea para llevarse a cabo (a quien está asociada, por quien es provista y el tipo que requiere).  operacion. Se utiliza para realizar las relaciones entre tareas, es decir las operaciones que se realizan cuando una tarea se activa, se completa o se cancela (p. ej. cuando se completa la tarea PRESTAR se activa la tarea DEVOLUCION).  instanciaTarea. Se almacenan las tareas pendientes de los usuarios y el detalle del recurso asociado. 100
  • 109. Capítulo 4 Análisis y diseñoGestión de grupos y usuarios  grupo. Almacena los grupos de usuarios.  usuario. Almacena la información de los usuarios que tendrán acceso a los servicios de la aplicación.Gestión de recursos  tipoRecurso. Almacena los tipos de recursos asociados a las tareas, por ejemplo LIBRO, COMPUTADORA, etc. Dependiendo el tipo de recurso serán los atributos que se almacenen es por ello de la existencia de la relación atributo.  atributo. Almacena como los atributos referentes a un tipo de recurso (ej. para un libro ISBN, TITULO, EDITORIAL), dentro de esta relación existe un atributo llamado imprimible, el cual tendrá un valor S refiriéndose a que el atributo se imprimirá en el cliente.  recurso. Hace referencia a un recurso en especifico (p. ej. Libro Don Quijote), dependiendo del recurso que se tenga se tendrán los valores de sus atributos.  valor. Almacena los valores de los atributos para cada recurso (ej. ISBN=SDGDGDGD, TITULO=DON QUIJITE), etc.Gestión de ubicaciones  campus. Almacena la ruta del archivo del plano del campus y la descripción del campus.  edificio. Almacena la descripción del edificio, sus coordenadas dentro del campus y el identificador asociado ya sea de RFID, MAC o Cell-ID.  plano. Almacena la descripción del plano, la ruta del archivo del plano y el edificio al cual pertenece.  ubicacion. Como su nombre lo indica almacena las ubicaciones en las que un usuario podrá localizarse dentro del campus, estará asociado a un identificador, este identificador será el mismo que tenga una tarjeta RFID o el dispositivo WiFi o Bluetooth para poder realizar la localización.4.2.6 Diseño de la aplicación Web para la gestión de las tareasLa aplicación Web surge por la necesidad de alimentar y administrar el contenidode la base de datos. Es un sistema de consulta, eliminación, modificación y alta detareas, recursos, ubicaciones y usuarios en la base de datos.En la figura 4.48 Se muestra el diagrama de casos de uso de la aplicación Web. 101
  • 110. Capítulo 4 Análisis y diseño CU-1 Login CU-2 Administrar CU-8 Logout grupos y usuarios Usuario CU-7 Consultar CU-3 Administrar ayuda recursos CU-6 Administrar CU-4 Administrar tareas de los usuarios Administrador ubicaciones CU-5 Administrar tipos de tareas Figura 4.48 Casos de uso de la aplicación WebEl sistema cuenta con 2 paquetes:  mx.edu.cenidet.basedatos. Se encarga de la conexión y las operaciones sobre la base de datos.  mx.edu.cenidet.xmlread. Se encarga de leer los atributos del archivo de configuración.En la figura 4.49 se muestra el diagrama de paquetes de esta aplicación. Figura 4.49 Diagrama de paquetes de la aplicación Web4.2.6.1 Paquete mx.edu.cenidet.basedatosEste paquete contiene dos clases, las cuales se describen a continuación:  Conexion. Contiene los métodos y atributos necesarios para realizar la conexión con la base de datos de tareas.  OperacionesBD. Proporciona la funcionalidad para realizar operaciones de consulta, inserción y modificación en la base de datos. 102
  • 111. Capítulo 4 Análisis y diseñoEn la figura 4.50 se visualiza el diagrama de clases del paquetemx.edu.cenidet.basedatos. Figura 4.50 Diagrama de clases paquete mx.edu.cenidet.basedatos4.2.6.2 Paquete mx.edu.cenidet.xmlreadEste paquete consta únicamente de una clase: XMLRead, la cual se encarga deleer los atributos capturados en el archivo de configuración.La figura 4.51 muestra el diagrama de clases de este paquete. Figura 4.51 Diagrama de clases paquete mx.edu.cenidet.xmlreadEn este capítulo se detallaron los diagramas UML correspondientes al análisis ydiseño de las aplicaciones que forman parte del sistema, el cual es resultado deldesarrollo de esta tesis.A continuación se describirá la implementación de las aplicaciones del sistema. 103
  • 112. 5 Capítulo 5 Implementación Capítulo 5 ImplementaciónEn este capítulo se presentan los detalles tecnológicos de la propuesta. Sedescribe la implementación de los módulos de las aplicaciones que son resultadode la tesis, del servidor de tareas y de la aplicación Web que gestiona lainformación de recursos, ubicaciones y tareas. Asimismo, se explica elfuncionamiento en conjunto de los componentes que integran la plataformapropuesta.
  • 113. Capítulo 5 Implementación5.1 Detalles tecnológicosEl proyecto consta de 3 aplicaciones: el cliente montado en el dispositivo celular,el servidor que atiende las peticiones del cliente y la aplicación Web que gestionala información de tareas, ubicaciones, usuarios y recursos. La figura 5.1 muestralos componentes que se utilizan en la implementación del proyecto. Figura 5.1 Detalles tecnológicos del proyectoLas tecnologías empleadas que muestra la figura 5.1 son descritas a continuación. Android se utiliza como plataforma para la parte cliente. La parte servidora se implementó utilizando OSGi, para ello se hace uso de las funcionalidades que ofrece Apache Felix. La identificación automática se hace mediante RFID y códigos de barras. El intercambio de información se realiza a través del protocolo HTTP. Se utiliza JSON para la serialización y deserialización de objetos. Se utiliza un enfoque REST para ofrecer los servicios Web. Para gestionar la información de recursos, ubicaciones, tareas y usuarios se utiliza una aplicación Web desarrollada en JSP, montada sobre Apache Tomcat.5.1.1 ClienteEl cliente se implementó en la plataforma Android. Se definió una interfaz paraacceder a la lista de tareas pendientes. Esta lista puede filtrarse para mostrar lastareas del usuario, las tareas en una fecha específica, las tareas asociadas aobjetos cercanos. Además se pueden establecer nuevas tareas como pendientes. 107
  • 114. Capítulo 5 Implementación5.1.2 ServidorPara obtener una arquitectura modular, la parte servidora se basó en OSGi. OSGies una tecnología Java que permite entre otras cosas definir las dependenciasentre distintos componentes (llamados bundles) de manera que se gestionen deforma automática. La implementación a utilizar se basa en open sourceespecíficamente Apache Felix.Para ofrecer los servicios del sistema de manera que otras aplicaciones (p.ej. elcliente Android) puedan acceder fácilmente a ellos, se ofrecen mediante unservicio Web siguiendo una aproximación REST. Para ello se utiliza Restlet.5.1.3 Aplicación Web de gestión de tareasLa aplicación Web de T-Guide surge por la necesidad de alimentar y gestionar lainformación de la base de datos correspondiente a usuarios, recursos, tareas yubicaciones, necesarios para el correcto funcionamiento de la plataforma T-Guide.Está desarrollada en JSP y montada sobre el servidor de aplicaciones ApacheTomcat.5.2 Interacción del sistema cliente-servidorA continuación se describe la implementación del proyecto basándonos en lasinterfaces de usuario, para ello se mostrará una figura con la interfaz y sedescribirá el proceso realizado.5.2.1 Autenticación del usuarioLa autenticación se realiza de forma automática mediante la lectura de losatributos del archivo de configuración que se encuentra en el dispositivo celularllamado config.xml. A continuación se muestra el contenido del archivo deconfiguración.<?xml version="1.0" encoding="windows-1252"?><!-- Document : configuracion.xml Created on : 18 de mayo de 2009, 09:22 AM Author : Israel Arjona Vizcaino Description: Purpose of the document follows.--><root> <servidor>192.168.200.21</servidor> <puerto>8101</puerto> <imagenes>/WebTareas/img/</imagenes> <planos>/WebTareas/planos/</planos> <barras>/WebTareas/barras/</barras> <fotos>/WebTareas/fotos/</fotos> <user_id>2</user_id> <servidor_rfid>192.168.200.21</servidor_rfid> <puerto_rfid>4444</puerto_rfid> 108
  • 115. Capítulo 5 Implementación</root>La autenticación se realiza mediante el atributo user_id. Si se autentificacorrectamente, se mostrará la pantalla inicial del sistema (ver figura 5.2). Figura 5.2 Pantalla inicial del sistemaSi no se puede realizar correctamente la autenticación del usuario se muestra unmensaje indicándole que el usuario es erróneo (ver figura 5.3). Figura 5.3 Pantalla de datos erróneosEl proceso que se sigue para llevar a cabo la autenticación del usuario se muestraen el diagrama de la figura 5.4. 109
  • 116. Capítulo 5 Implementación BD tareas Hacer una petición GET Obtener del El servidor valida el al servicio Web ofrecido Inicio identificador identificador del usuario por Restlet enviando el del usuario consultando la BD identificador del usuario Si Acceder al Se envía el objeto de tipo Se recibe objeto sistema usuario encontrado No Mostrar Fin pantalla de datos erroneos Figura 5.4 Diagrama de flujo del proceso de autenticación5.2.2 Consulta de tareas pendientesLa figura 5.5 muestra la pantalla de ―Tareas Pendientes‖, en esta pantalla semuestra una lista elegible de tareas pendientes para el usuario, las cuales puedenser filtradas por contexto o por fecha. Figura 5.5 Pantalla de Tareas Pendientes 110
  • 117. Capítulo 5 ImplementaciónCuando el usuario da clic sobre una tarea se mostrará la pantalla de detalles detarea, la cual se visualiza en la figura 5.6, en donde se podrán capturar lasincidencias de la tarea, modificar la fecha y hora de la tarea, ver los detalles delobjeto asociado a la tarea, cancelar y completar la tarea. Figura 5.6 Pantalla de detalles de tareaEl proceso que se sigue para la consulta de tareas se muestra en el diagrama deflujo de la figura 5.7. BD tareas Hacer una petición GET El servidor consulta las El servidor envía el al servicio Web ofrecido tareas pendientes Inicio listado en forma de por Restlet enviando el pertenecientes al usuario objetos serializados identificador del usuario en la BD Acceder al Si sistema Se reciben objetos? Mostrar listado No Fin de tareas pendientes Figura 5.7 Diagrama de flujo del proceso de consulta de tareas pendientes5.2.3 Completar/Cancelar una tareaLa figura 5.8 muestra la pantalla de ―Detalle de tareas‖, es en esta pantalla dondeel usuario realiza las operaciones de cancelar o completar una tarea. 111
  • 118. Capítulo 5 Implementación Figura 5.8 Pantalla de detalles de tareaAl dar clic en cualquier operación completar/cancelar el estado de la tarea pasar áde activo a completado o cancelado según se haya elegido y se mostrará lapantalla de tareas pendientes (ver figura 5.9). Figura 5.9 Pantalla de listado de tareas con mensaje de tarea completadaSi la operación no se realiza correctamente se mostrará el mensaje que apareceen la figura 5.10. Figura 5.10 Error en la operación 112
  • 119. Capítulo 5 ImplementaciónEl proceso que se sigue para completar o cancelar tareas se muestra en eldiagrama de flujo de la figura 5.11. BD tareas Enviar petición POST al Actualizar el estado de la Elegir servidor añadiendo el tarea del usuario a Inicio completar o identificador de la tarea y completo o cancelado en cancelar del usuario la BD Mostrar pantalla de tareas Si pendientes Se pudo actualizar? Mostrar No Fin mensaje de alerta Figura 5.11 Diagrama de flujo del proceso de completar/cancelar una tarea5.2.4 Nueva tarea (establecer una tarea como pendiente)Para dar de alta una nueva tarea se realiza lo siguiente: 1. Elegir ―Nueva tarea‖ dentro del menú de la pantalla de ―Tareas pendientes‖. 2. Elegir la actividad a la que pertenece la tarea. 3. Elegir el tipo de tarea que se dará de alta. 4. Seleccionar el objeto por código de barras, introducir el identificador manualmente o verificar el contexto en busca de objetos cercanos. 5. Establecer la fecha y hora de la tarea. 6. Elegir del menú la opción ―Guardar‖.La figura 5.12 muestra las pantallas para dar de alta una nueva tarea. 113
  • 120. Capítulo 5 Implementación Figura 5.12 Pantallas involucradas en el proceso de alta de tareaSi la operación no se realiza correctamente se mostrará el mensaje que apareceen la figura 5.10. El proceso que se sigue para dar de alta una nueva tarea semuestra en el diagrama de flujo de la figura 5.13. A BD tareas El servidor realiza un Enviar petición GET al Elegir filtrado de las actividades Inicio servidor añadiendo el nueva tarea a las que tiene acceso un identificador del usuario usuario en la BD El servidor realiza unfiltrado de las los tipos de Enviar petición GET al El cliente recibe la tarea dentro de la servidor añadiendo el Elegir información en forma de actividad elegido a los identificador del usuario y el actividad objetos serializados y muestra que tiene acceso un identificador de la actividad un listado de actividades usuario en la BD B 114
  • 121. Capítulo 5 Implementación B El cliente recibe la información en forma de Elegir tipo Elegir por Si Mostrar cámara Por barras objetos serializados y muestra de tarea barras fotográfica un listado de tipos de tarea A Leer No Capturar identificador imagen de recurso El cliente recibe la Si El servidor realiza Enviar petición GET al Decodificar información en forma de un la consulta del servidor añadiendo el Pudo decodificar? código deobjetos serializado y muestra recurso en la BD identificador del recurso barras la información del recurso No Enviar petición POST al servidor añadiendo el No Elegir Mostrar mensaje de identificador del recurso, el Se recibió exito guardar error tipo de tarea, el identificador del usuario y la fecha Si El servidor inserta un nuevo El cliente recibe la respuesta Mostrar mensaje de registro de en la tabla del servidor por medio de un Fin tarea almancenada InstanciaTarea en la BD objeto serializado A Figura 5.13 Diagrama de flujo de alta de nueva tarea 5.2.5 Tarea de guiado por RFID Para dar de alta la tarea de guiado se realiza lo siguiente: 1. Elegir ―Nueva tarea‖ dentro del menú de la pantalla de ―Tareas pendientes‖. 2. Elegir la actividad de guiado. 3. Elegir el tipo de tarea guiado por RFID. 4. Se obtiene automáticamente la posición del dispositivo. 5. Elegir el destino al que se desea el guiado. 6. Se inicia el proceso de guiado, que culmina una vez que se ha llegado al destino solicitado. El proceso de guiado se describe en el diagrama de flujo de la figura 5.14. 115
  • 122. Capítulo 5 Implementación Obtener tarjetas Inicio RFID en cercanía Enviar petición GET al servidor el identificador RFID obtenido El servidor consulta las la El servidor envía la BD tareas ubicación que tiene ubicación encontrada asociado el RFID en forma serializada No Se reciben objetos? Seleccionar Enviar mensaje destino de error El destino es igual Si Terminar la Fin a la posición actual tarea de guiado No Mostrar al usuario Enviar petición GET al su posición actual y Obtener tarjetas servidor el identificador la posición del RFID en cercanía RFID obtenido destino elegido El servidor envía la El servidor consulta las la ubicación encontrada ubicación que tiene en forma serializada asociado el RFID Figura 5.14 Diagrama de flujo del proceso de guiado por RFIDLa figura 5.15 muestra las pantallas que involucra el proceso de guiado medianteRFID. 116
  • 123. Capítulo 5 Implementación Figura 5.15 Pantallas involucradas en el proceso de guiado por RFID5.2.6 Tarea de guiado por QRCodesPara dar de alta la tarea de guiado se realiza lo siguiente: 1. Elegir ―Nueva tarea‖ dentro del menú de la pantalla de ―Tareas pendientes‖. 2. Elegir la actividad de guiado. 3. Elegir el tipo de tarea guiado por QRCodes. 4. Se inicia la cámara y el usuario captura la fotografía del código de barras. 5. Se decodifica la fotografía. 6. Se obtiene la posición actual del dispositivo. 7. Elegir el destino al que se desea el guiado. 8. Se inicia el proceso de guiado, que culmina una vez que se ha llegado al destino solicitado.El proceso de guiado por QRCodes se describe en el diagrama de flujo de la figura5.16. 117
  • 124. Capítulo 5 Implementación Capturar la fotografía con Inicio Iniciar la cámara el código de barras No Decodificar el código de A Se decodificó? barras Si El servidor consulta las la El servidor envía la BD tareas ubicación con el ubicación encontrada identificador asociado en forma serializada No A Si Se reciben objetos? Seleccionar Enviar mensaje destino de error El destino es igual Si Terminar la Fin a la posición actual tarea de guiado No No Mostrar al usuario Capturar fotografía su posición actual y Decodificar código con código de Se decidificó? la posición del de barras barras destino elegido Si El servidor envía la El servidor consulta las la Enviar petición GET al ubicación encontrada ubicación que tiene servidor con el en forma serializada asociado el identificador identificador Figura 5.16 Diagrama de flujo del proceso de guiado por QRCodesLa figura 5.17 muestra las pantallas que involucra el proceso de guiado medianteQRCodes. 118
  • 125. Capítulo 5 Implementación Figura 5.17 Pantallas involucradas en el proceso de guiado por QRCodes5.3 Interacción de la aplicación WebLa aplicación Web está desarrollada sobre JSP y montada en el servidor deaplicaciones Apache Tomcat. Consta de los siguientes módulos: Administración de usuarios. Administración de recursos. Administración de ubicaciones. Administración de tareas. Administración de tareas de los usuarios.Esta aplicación puede ser iniciada únicamente por el administrador.En la figura 5.18 se muestra la pantalla principal de la aplicación. 119
  • 126. Capítulo 5 Implementación Figura 5.18 Pantalla principal de la aplicación Web5.3.1 Administración de usuariosDentro de este módulo se pueden realizar consultas, modificaciones e insercionesde grupos y usuarios. En la figura 5.19, se presentan algunas interfaces quecorresponden al módulo de administración de usuarios. 120
  • 127. Capítulo 5 Implementación Figura 5.19 Pantallas del módulo de administración de usuarios5.3.2 Administración de recursosDentro de este módulo se pueden realizar consultas, modificaciones e insercionesde recursos y tipos de recursos, un tipo de recurso hace referencia a una claseque engloba ciertos objetos con ciertos atributos, por ejemplo el tipo de recurso―Libro‖ tiene los atributos ―ISBN‖, ―titulo‖, entre otros. En la figura 5.20, sepresentan algunas interfaces que corresponden al módulo de administración derecursos. 121
  • 128. Capítulo 5 Implementación Figura 5.20 Pantallas del módulo de administración de recursos5.3.3 Administración de ubicacionesDentro de este módulo se pueden realizar consultas, modificaciones e insercionesde campus, planos, edificios y ubicaciones. En la figura 5.21, se muestra lapantalla de alta de campus. En esta pantalla se captura la descripción y la imagenque corresponde al plano del campus. 122
  • 129. Capítulo 5 Implementación Figura 5.21 Pantalla de alta de campusLa figura 5.22 muestra la pantalla de alta de ubicaciones. En esta pantalla secaptura el identificador de la ubicación, que puede ser RFID, o una dirección MACde un dispositivo WiFi o Bluetooth, se captura también la descripción y se da clicsobre la imagen para almacenar la ubicación. 123
  • 130. Capítulo 5 Implementación Figura 5.22 Pantalla de captura de ubicaciones5.3.4 Administración de tareasDentro de este módulo se pueden realizar consultas, modificaciones e insercionesde tareas que estarán disponibles para los usuarios. En la figura 5.23, se muestrala pantalla de alta de tarea. En esta pantalla se captura la descripción de la tarea,se establecen los permisos y el tipo de objeto que se requiere (recurso, ubicacióno usuario), y las operaciones que se realizan al activar, completar o cancelar latarea. 124
  • 131. Capítulo 5 Implementación Figura 5.23 Pantalla de alta de tareas5.3.5 Administración de tareas de los usuariosDentro de este módulo se pueden realizar consultas, modificaciones e insercionesde tareas pendientes de los usuarios. En la figura 5.24, se muestra la pantalla deactivación de tarea del usuario. En esta pantalla se captura la actividad, el tipo detarea, la fecha y hora de la tarea, y el objeto que se asocia a la tarea. Figura 5.24 Pantalla de activación de tarea de usuariosEn este capítulo se mostraron los detalles tecnológicos y las interfaces de usuariode las aplicaciones desarrolladas (el cliente en el dispositivo móvil y la aplicaciónWeb para la administración de la información de la base de datos), las cualespermiten el correcto funcionamiento del proyecto.A continuación se detallan las pruebas realizadas para validar el buenfuncionamiento de las aplicaciones que son resultado del proyecto de tesis. 125
  • 132. 6 Capítulo 6 Pruebas Capítulo 6 PruebasEn este capítulo se muestran los resultados obtenidos en cada caso de pruebarealizado.
  • 133. Capítulo 6 PruebasEl plan de pruebas se titula T-GUIDE y se encuentra en el anexo B. Se realizósiguiendo el estándar 829 de la IEEE [STD829].La siguiente lista define las características a ser probadas:  Configuración y conexiones. Se verificó la correcta configuración de los dispositivos utilizados por el cliente: lector RFID; la conexión entre el cliente y el servidor y la conexión de la base de datos con el servidor y la aplicación Web.  Auto-identificación. Define los casos de prueba para la identificación automática de recursos físicos en cercanía del dispositivo móvil, utilizando como tecnologías de Auto-ID el código de barras y tarjetas RFID.  Localización y guiado del dispositivo móvil. Define los casos de prueba para la localización por medio de RFID de un dispositivo móvil. Además se definen los casos de prueba para la realización de la tarea de guiado, la cual se refiere a guiar a un usuario de una localización origen obtenida automáticamente a una destino elegida por el usuario.  Administración de tareas. Define los casos de prueba para el manejo de tareas, la correcta consulta y almacenamiento de la información de estas en la base de datos y la obtención de resultados a través del protocolo HTTP.  Administración de la información de la base de datos. Define los casos de prueba para la gestión de la información de la base de datos, como es la consulta, modificación, eliminación y actualización.A continuación se describen los resultados de las pruebas.6.1 Pruebas de configuración y conexiones Tabla 13 Caso de prueba T-Guide-001-001Caso de prueba: T-Guide-001-001 Configuración y conexión del cliente móvil con el lector RFIDDESCRIPCIÓN: Permitir al dispositivo celular que pueda acceder a la conexión con ellector de tarjetas RFID. La prueba se realizó utilizando el intermediario entre el lectorRFID y el dispositivo celular. Estando conectado el lector RFID, se inició el intermediarioy la aplicación en el dispositivo celular. En el listado de tareas se eligió la opcióncontexto, para realizar una conexión con el lector RFID. 129
  • 134. Capítulo 6 PruebasResultado: OK.Observaciones: La conexión entre el lector y el dispositivo celular se realizó exitosamentehaciendo uso del intermediario.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 14 Caso de prueba T-Guide-001-002Caso de prueba: T-Guide-001-002 Configuración y conexión del servidor de tareas con el dispositivo móvilDESCRIPCIÓN: Permitir al dispositivo celular que pueda acceder al servicio Webofrecido por el servidor de tareas. La prueba se realizó teniendo iniciado Apache Felix yel bundle del servidor de tareas activo, se realizó una petición GET para validar al usuarioy obtener sus datos. 130
  • 135. Capítulo 6 PruebasResultado: OK.Observaciones: La conexión entre el dispositivo celular y el servidor se realizóexitosamente, la configuración se hizo correctamente mediante el archivo deconfiguración. La información tardó alrededor de un segundo en llegar al dispositivocelular.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 15 Caso de prueba T-Guide-001-003 Caso de prueba: T-Guide-001-003 Configuración y conexión del servidor de tareas con la base de datosDESCRIPCIÓN: Verificar que el archivo de configuración del servidor de tareas estécorrectamente formado y sea interpretado correctamente. Asimismo, verificar que elservidor de tareas se conecte correctamente con la base de datos. La prueba se realizarácon el servidor de tareas en funcionamiento y se realizará una petición GET desde unnavegador Web, se solicitarán las tareas de un usuario. 131
  • 136. Capítulo 6 PruebasResultado: OK.Observaciones: El servidor de tareas accedió exitosamente a la información de la base dedatos y se obtuvieron de forma correcta las tareas activas de un usuario.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor6.2 Pruebas de auto-identificación Tabla 16 Caso de prueba T-Guide-002-001 Caso de prueba: T-Guide-002-001 Captura y decodificación del código de barrasDESCRIPCIÓN: Verificar que la imagen capturada, mediante la cámara inmersa en eldispositivo móvil, que contenga un código de barras, se decodifique de una formacorrecta y se obtenga el identificador adecuado. La prueba se realizará con el dispositivocelular, se capturará una imagen y se obtendrá su identificador. 132
  • 137. Capítulo 6 PruebasResultado: OK.Observaciones: Se decodificó correctamente el código de barras en la imagen. Cabedestacar que para que se lleve a cabo la decodificación debe haber bastante iluminación.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 17 Caso de prueba T-Guide-002-002 Caso de prueba: T-Guide-002-002 Obtención de las tarjetas RFID en cercaníaDESCRIPCIÓN: Comprobar que se obtengan correctamente las tarjetas en cercaníarealizando la comunicación entre el dispositivo celular y el lector RFID. Para ello seiniciará el intermediario que realiza la comunicación entre los dispositivos y secomprobará mediante el listado de tareas relacionadas con objetos cercanos. El procesocomenzará en el celular y se acercará una tarjeta RFID al lector. Se requiere que elservidor esté activo. 133
  • 138. Capítulo 6 PruebasResultado: OK. La tarjeta RFID obtenida tiene como identificador e070024a3848300Observaciones: Se obtuvieron correctamente las tarjetas RFID en cercanía y el filtrado delas tareas conforme al contexto se hizo de manera exitosa.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor6.3 Pruebas de localización y guiado del dispositivo móvil Tabla 18 Caso de prueba T-Guide-003-001 Caso de prueba: T-Guide-003-001 Localización del dispositivo móvil por RFIDDESCRIPCIÓN: Verificar que se obtenga la ubicación del dispositivo móvil mediante lalectura de tarjetas RFID en cercanía. Para ello se iniciará el intermediario que realiza lacomunicación entre los dispositivos. El proceso comenzará en el celular y se acercará unatarjeta RFID al lector. El servidor deberá estar activo. 134
  • 139. Capítulo 6 PruebasResultado: OK. El RFID obtenido corresponde a la ubicación ―Sistemas Distribuidos‖Observaciones: La posición se obtuvo exitosamente y con gran precisión.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 19 Caso de prueba T-Guide-003-002Caso de prueba: T-Guide-003-002 Localización del dispositivo móvil por QRCodesDESCRIPCIÓN: Comprobar que se obtenga la ubicación del dispositivo móvil mediantela captura y decodificación de una imagen con un código de barras. El servidor de tareasdeberá estar activo. 135
  • 140. Capítulo 6 PruebasResultado: OK. El código de barras decodificado corresponde a la ubicación ―Mantenimiento‖Observaciones: La posición se obtuvo exitosamente y con gran precisión.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 20 Caso de prueba T-Guide-003-003 Caso de prueba: T-Guide-003-003 Guiado del dispositivo móvilDESCRIPCIÓN: Verificar que el proceso de guiado, por RFID o por QRCodes desde suposición actual al destino se lleve a cabo de una forma precisa y correcta, actualizandoconstantemente la posición utilizando del dispositivo. El proceso iniciará desde eldispositivo cliente y el servidor de tareas tendrá que estar activo. 136
  • 141. Capítulo 6 PruebasResultado: OK. El origen ―Sistemas Distribuidos‖ y el destino ―Documentación‖ están en planos distintos Se lee otra posición que corresponde a ―Mantenimiento‖ Se indica al usuario que vaya a las escaleras 137
  • 142. Capítulo 6 Pruebas Se actualiza la posición Se lee otra posición y se Se llega al destino del usuario actualiza solicitado (véase que el plano es distinto)Observaciones: El proceso de guiado se realiza de forma exitosa actualizandoconstantemente la posición del usuario.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor6.4 Pruebas de administración de tareas Tabla 21 Caso de prueba T-Guide-004-001Caso de prueba: T-Guide-004-001 Invocación del servicio Web para la obtención de un listado de tareas pendientesDESCRIPCIÓN: Comprobar que se obtenga una lista de las tareas pendientes de unusuario en especifico, a través de la conexión entre el dispositivo celular con el servidorde tareas mediante una petición HTTP GET. Para llevar a cabo la prueba se iniciará elApache Felix con el servidor de tareas activo. 138
  • 143. Capítulo 6 PruebasResultado: OK. El listado de tareas corresponde con lo obtenido mediante la consulta SQLObservaciones: El listado de tareas obtenido del usuario es correcto, por lo tanto elproceso es exitoso.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 22 Caso de prueba T-Guide-004-002 Caso de prueba: T-Guide-004-002 Invocación del servicio Web para completar/cancelar una tareaDESCRIPCIÓN: Verificar que se desactive correctamente una tarea pendiente, ya seacancelándola o completándola, a través de la conexión entre el dispositivo celularmediante una petición HTTP GET con el servidor de tareas, el cual ofrece el servicioWeb. Para llevar a cabo la prueba se iniciará el Apache Felix con el servidor de tareasactivo. 139
  • 144. Capítulo 6 PruebasResultado: OK. La base de datos antes y después de completar la tarea, se observa que la tarea ―Devolver Libro‖ se activa después de completar la tarea ―Prestar Libro‖. La base de datos antes y después de cancelar la tarea, se observa que ya no aparecen tareas pendientes y el estado de la tarea devolver libro se actualiza a ―X‖Observaciones: El proceso de completar y cancelar una tarea se llevó a cabo de formaexitosa, además se pudo comprobar que las dependencias establecidas entre tareas serealizan correctamente.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 23 Caso de prueba T-Guide-004-003 Caso de prueba: T-Guide-004-003 Invocación del servicio Web para el almacenamiento de una nueva tarea del usuarioDESCRIPCIÓN: Comprobar que se establezca correctamente una nueva tarea comopendiente para el usuario que la crea a través de una petición POST al servidor detareas, el cual ofrece el servicio Web. Para llevar a cabo la prueba se iniciará el ApacheFelix con el servidor de tareas activo. 140
  • 145. Capítulo 6 PruebasResultado: OK. Se elige ―Nueva Se listan las Se listan las Se buscarán Tarea‖ actividades tareas dentro objetos de la actividad cercanos Se lee el objeto Se asocia el Se almacena la ―Mantenimiento‖ objeto Se establecen la tarea fecha y la horaObservaciones: El proceso de establecer una tarea como pendiente se llevo a cabo deforma exitosa.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor 141
  • 146. Capítulo 6 Pruebas6.5 Pruebas de administración de la información de la base de d a to s Tabla 24 Caso de prueba T-Guide-005-001Caso de prueba: T-Guide-005-001 Administración de la información de los usuariosDESCRIPCIÓN: Comprobar que el módulo de administración de usuarios, en donde seconsulta, se modifican, se eliminan y se insertan grupos y usuarios se lleve a cabo deforma exitosa. Para llevar a cabo la prueba se pondrá en marcha el servidor deaplicaciones Apache Tomcat y se accederá a la aplicación Web de tareas mediante unnavegador Web.Resultado: OK. Se realiza una consulta general Se listan los grupos, los cuales corresponden a los almacenados en la base de datos Se da de alta un nuevo grupo Se almacena el nuevo registro en la base de datos y se muestra el listado Se eliminará el grupo 142
  • 147. Capítulo 6 Pruebas El grupo se elimina de la base de datos y desaparece del listado Se buscarán todos los usuarios en la base de datos Se listan los usuarios, los cuales corresponden a los almacenados en la base de datos Se dará de alta un nuevo usuario Se almacena el nuevo registro en la base de datos y se muestra el listado143
  • 148. Capítulo 6 Pruebas Se eliminará el usuario El usuario se elimina de la base de datos y desaparece del listadoObservaciones: La administración de los grupos y usuarios hecha a través de laaplicación Web, en donde se insertan, modifican y eliminan grupos y usuarios se llevó acabo de forma exitosa, manteniendo siempre la integridad de la información.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 25 Caso de prueba T-Guide-005-002Caso de prueba: T-Guide-005-002 Administración de la información de los recursosDESCRIPCIÓN: Verificar que el módulo de administración de recursos, en donde seconsulta, se modifican, se eliminan y se insertan recursos y tipos de recursos se lleve acabo de forma exitosa. Para llevar a cabo la prueba se pondrá en marcha el servidor deaplicaciones Apache Tomcat y se accederá a la aplicación Web de tareas mediante unnavegador Web. 144
  • 149. Capítulo 6 PruebasResultado: OK. Se realiza una consulta general Se listan los tipos de recursos, los cuales corresponden a los almacenados en la base de datos Se da de alta un nuevo grupo Se almacena el nuevo registro en la base de datos y se muestra el listado Se agregarán atributos al tipo de recurso Se agregan los atributos al tipo de recurso Se listan los atributos del tipo de recurso Se realiza una consulta general Se listan los tipos de recursos, los cuales corresponden a los almacenados en la base de datos 145
  • 150. Capítulo 6 Pruebas Se dará de alta un nuevo recurso Se almacena el nuevo registro en la base de datos y se muestra el listado Se eliminará el recurso El recurso se elimina de la base de datos y desaparece del listadoObservaciones: La administración de los recursos hecha a través de la aplicación Web,en donde se insertan, modifican y eliminan recursos y tipos de recursos se llevó a cabode forma exitosa, manteniendo siempre la integridad de la información.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor 146
  • 151. Capítulo 6 Pruebas Tabla 26 Caso de prueba T-Guide-005-003 Caso de prueba: T-Guide-005-003 Administración de la información de las ubicacionesDESCRIPCIÓN: Comprobar que el módulo de administración de ubicaciones, en dondese consulta, se modifican, se eliminan y se insertan campus, edificios, planos yubicaciones se realice de forma exitosa. Para llevar a cabo la prueba se pondrá enmarcha el servidor de aplicaciones Apache Tomcat y se accederá a la aplicación Web detareas mediante un navegador Web.Resultado: OK. Se realiza una consulta general Se listan los campus, los cuales corresponden a los almacenados en la base de datos Se da de alta un nuevo campus Se almacena el nuevo registro en la base de datos y se muestra el listado Se eliminará el campus 147
  • 152. Capítulo 6 Pruebas El campus se elimina de la base de datos y desaparece del listado Se realiza una consulta de edificios con RFID en el campus Se listan los edificios, los cuales corresponden a los almacenados en la base de datos Se capturará un nuevo edificio Se almacena el nuevo registro en la base de datos y se muestra el listado148
  • 153. Capítulo 6 Pruebas Se eliminará el edificio El edificio desaparece del listado Se realiza una consulta general de planos Se listan los planos, los cuales corresponden a los almacenados en la base de datos Se capturará un nuevo plano Se almacena el nuevo registro en la base de datos y se muestra el listado149
  • 154. Capítulo 6 Pruebas Se eliminará el plano El plano desaparece del listado Se realiza una de ubicaciones con RFID en el plano Se listan las ubicaciones, los cuales corresponden a los almacenados en la base de datos150
  • 155. Capítulo 6 Pruebas Se capturará una nueva ubicación Se almacena el nuevo registro en la base de datos y se muestra el listado Se eliminará la ubicación La ubicación desaparece del listadoObservaciones: La administración de las ubicaciones hecha a través de la aplicaciónWeb, en donde se insertan, modifican y eliminan campus, edificios, planos y ubicacionesse llevó a cabo de forma exitosa, manteniendo siempre la integridad de la información.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor 151
  • 156. Capítulo 6 Pruebas Tabla 27 Caso de prueba T-Guide-005-004 Caso de prueba: T-Guide-005-004 Administración de la información de las tareasDESCRIPCIÓN: Verificar que el módulo de administración de tareas, en donde seconsulta, se modifica, se eliminan y se insertan actividades y tareas se realice de formaexitosa. Para llevar a cabo la prueba se pondrá en marcha el servidor de aplicacionesApache Tomcat y se accederá a la aplicación Web de tareas mediante un navegadorWeb.Resultado: OK. Se realiza una consulta general Se listan las actividades, las cuales corresponden a las almacenadas en la base de datos Se da de alta una nueva actividad Se almacena el nuevo registro en la base de datos y se muestra el listado Se eliminará la actividad La actividad se elimina de la base de datos y desaparece del listado 152
  • 157. Capítulo 6 Pruebas Se realiza una consulta de edificios con RFID en el campus Se listan las tareas, las cuales corresponden a las almacenadas en la base de datos Se capturará una nueva tarea Se almacena el nuevo registro en la base de datos y se muestra el listado153
  • 158. Capítulo 6 Pruebas Se eliminará la tarea El edificio desaparece del listadoObservaciones: La administración de las tareas hecha a través de la aplicación Web, endonde se insertan, modifican y eliminan actividades y tareas se llevó a cabo de formaexitosa, manteniendo siempre la integridad de la información.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: Autor Tabla 28 Caso de prueba T-Guide-005-005Caso de prueba: T-Guide-005-005 Administración de la información de las tareas de los usuariosDESCRIPCIÓN: Verificar que el módulo de administración de tareas de tareas de losusuarios, en donde se consulta, se modifican, se eliminan y se insertan tareas se realicede forma exitosa. Para llevar a cabo la prueba se pondrá en marcha el servidor deaplicaciones Apache Tomcat y se accederá a la aplicación Web de tareas mediante unnavegador Web. 154
  • 159. Capítulo 6 PruebasResultado: OK. Se realiza una consulta de tareas de un usuario Se listan las actividades, las cuales corresponden a las almacenadas en la base de datos Se da de alta una nueva tarea para el usuario Se almacena el nuevo registro en la base de datos y se muestra el listado Se eliminará la tarea La tarea se elimina de la base de datos y desaparece del listado 155
  • 160. Capítulo 6 PruebasObservaciones: La administración de las tareas de los usuarios hecha a través de laaplicación Web, en donde se insertan, modifican y eliminan tareas de los usuarios sellevó a cabo de forma exitosa, manteniendo siempre la integridad de la información.Responsable de la prueba: Israel Arjona Vizcaíno Cargo: AutorLos casos de prueba presentados validaron la funcionalidad de los módulos queconforman la arquitectura de T-Guide. En la Tabla 29 se muestra un resumen delos grupos de casos de prueba con una conclusión sobre la operación ycomportamiento de la plataforma para cada grupo. Tabla 29 Resumen de los casos de prueba de la plataforma propuesta Grupo Descripción Resultado Conclusión La conexión entre dispositivo móvil con el lector de Pruebas de configuración y tarjetas, entre el servidor y laT-Guide-001 Exitoso conexiones base de datos y entre el cliente y el servidor se realizó de manera exitosa. Se obtuvieron correctamente las tarjetas RFID y se tomó y Pruebas de auto- decodificó la fotografía conT-Guide-002 Exitoso identificación un código de barras. La fotografía que se tome no debe estar borrosa. Se posicionó con precisión al dispositivo utilizando QRCodes y RFID, y el Pruebas de localización yT-Guide-003 Exitoso proceso de guiado se realiza guiado del dispositivo móvil de forma exitosa actualizando correctamente la posición del usuario. Se administran de manera correcta las operaciones Pruebas de administración deT-Guide-004 Exitoso sobre las tareas de los tareas usuarios desde el dispositivo móvil. La información de la base de datos se administra de Pruebas de administración de manera exitosa desde laT-Guide-005 la información de la base de Exitoso aplicación Web, datos manteniendo siempre la integridad de la información. 156
  • 161. 7 Capítulo 7 Conclusiones Capítulo 7 ConclusionesEn este capítulo se muestran las conclusiones aportaciones, trabajos futuros,publicaciones que se obtuvieron con el presente trabajo de tesis.
  • 162. Capítulo 7 Conclusiones7.1 ConclusionesEl presente trabajo ha introducido una metodología para localizar dispositivoscelulares en interiores y se ha comprobado que es posible desarrollar un sistemaque asocie objetos del mundo real a actividades mediante la asociación de tarjetasRFID a objetos, háblese de lugares, personas o recursos, que le servirán derecordatorios para realizar sus tareas del día a día.A través de la metodología propuesta es posible localizar un dispositivo celularutilizando RFID y QRCodes en interiores con gran precisión.El resultado de este proyecto son tres aplicaciones: el cliente sobre Android, elservidor OSGi y una aplicación Web para la gestión de las tareas, de lasubicaciones, las tarjetas RFID y las direcciones MAC de los dispositivos dereferencia. Hasta ahora, este proyecto ha sido probado únicamente para lalocalización mediante RFID, sin embargo, la técnica utilizada para RFID es válidapara Bluetooth, WiFi y Cell-ID.Se logró implementar y probar satisfactoriamente el proyecto en el dispositivocelular HTC G2 con sistema operativo Android y se comprobó la exactitud de lalocalización con RFID y QRCodes.Debido a que el dispositivo celular no cuenta con lector RFID se realizó unaemulación de las lecturas RFID, pasando las lecturas a través de un socket entreel lector RFID conectado mediante USB a una laptop y el dispositivo celular.Se desarrolló un servidor que atiende las peticiones de los clientes a través de unservicio Web, el cual es independiente del tipo de dispositivo celular y su sistemaoperativo, lo que hace que el proyecto pueda crecer hacia otras plataformascliente.A continuación se detallan las principales aportaciones del proyecto.7.2 AportacionesEste proyecto tiene varias contribuciones, entre las que destacan: i. La vinculación de objetos del mundo real con las tareas mediante la auto- identificación, ya sea por código de barras (mediante QRCodes) o por RFID, haciendo uso de las funcionalidades de un dispositivo celular. ii. La localización de un dispositivo utilizando varias técnicas de posicionamiento, con tecnologías incluidas en la mayoría de los dispositivos celulares nuevos, con esto se abre un gran abanico de posibilidades de localizar a un dispositivo y cuando alguna de las tecnologías no se encuentre disponible se puede verificar que alguna otra 159
  • 163. Capítulo 7 Conclusiones esté disponible y con ello poder localizar al dispositivo en cualquier lugar y en cualquier momento, en interiores y en exteriores. iii. La metodología utilizada para la localización ha sido probada únicamente en RFID y QRCodes, sin embargo ésta técnica es válida y aceptable para la localización en Bluetooth, WiFi y Cell-ID, la base de datos y la aplicación Web están preparadas para aceptar estas modificaciones. iv. La precisión que se logra en el posicionamiento del dispositivo que es menor a 2 metros en interiores.7.3 Trabajos futurosAlgunos de los trabajos futuros que pueden depender del desarrollo de esta tesisson los siguientes:  Utilizando la metodología desarrollada se pueden ampliar las capacidades de localización del dispositivo celular a otras tecnologías como Bluetooth, WiFi y Cell-ID, cabe destacar que la aplicación Web que administra la información de la base de datos no tiene que ser modificada, está preparada para aceptar estos cambios.  Se pueden desarrollar clientes en diversas plataformas como J2ME y no sólo en Android, el servidor que atiende las peticiones no tendría que sufrir modificación alguna.  Se puede extender la auto-identificación a NFC 3, debido a que muchos celulares actuales ya contarán con esta tecnología.  Se puede incluir un guiado en exteriores, que haga uso del GPS y las APIs de Google Maps.  Se pueden investigar técnicas de posicionamiento como potencia de señal recibida en WiFi e incluirlas al proyecto.  Se puede desarrollar un módulo de diseño de planos para que se adapten perfectamente a la pantalla de los dispositivos.  Se puede hacer uso de las capacidades de los nuevos dispositivos celulares los cuales cuentan con brújula para hacer un guiado indicándole hacia dónde dirigirse.3 Near Field Communication (NFC) es un protocolo basado en una interfaz inalámbrica. Lacomunicación se realiza entre dos entidades (peer-to-peer). El protocolo establece conexiónwireless entre las aplicaciones de la red y los dispositivos electrónicos. 160
  • 164. Capítulo 7 Conclusiones7.4 PublicacionesSe logró la publicación de un artículo en el VII Congreso Internacional sobreInnovación y Desarrollo Tecnológico con ISBN: ISBN978-607-95255-0-7.  T-Guide: sistema contextual de guiado y administración de actividades mediante teléfonos celulares con sistema operativo Android y tecnología RFID.Se obtuvo el 2º lugar en el XIV Concurso de creatividad de los InstitutosTecnológicos en su fase local. 161
  • 165. Anexos Anexos
  • 166. Anexo A Definición de la interfaz de usuarioAnexo A Definición de la interfaz de usuario1. captura_barras.xml<?xml version="1.0" encoding="utf-8"?><TableLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="wrap_content"xmlns:android="http://schemas.android.com/apk/res/android"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15px" android:gravity="center"> <EditText android:id="@+id/etCapturaBarras" android:text="" android:textSize="18sp" android:typeface="sans" android:textStyle="bold" android:layout_marginLeft="5px" android:maxWidth="100px" android:width="100px" android:height="50px" android:maxHeight="50px"> </EditText> <Button android:id="@+id/btCapturaBarras" android:width="130px" android:layout_height="wrap_content" android:text="Por barras" android:textSize="14sp"> </Button> </TableRow> </TableLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15px" android:gravity="center"> <ImageView android:id="@+id/imCapturaBarras" android:width="170px" android:maxWidth="170px" android:height="170px" android:maxHeight="170px" android:gravity="center"> </ImageView> </TableRow> </TableLayout> </TableRow></TableLayout>2. detalles_instancia_tarea.xml<?xml version="1.0" encoding="utf-8"?><TableLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="wrap_content"xmlns:android="http://schemas.android.com/apk/res/android"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="8px"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10px"> <TextView android:text="Recurso Asociado" android:textSize="18sp" android:typeface="sans" android:textStyle="bold"> </TextView> 165
  • 167. Anexo A Definición de la interfaz de usuario </TableRow> </TableLayout></TableRow><TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="8px"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="3px" android:layout_marginTop="5px"> <TextView android:id="@+id/recurso" android:width="300px" android:maxWidth="300px" android:text="Libro Don Quijote de la manchanclick for more..." android:textSize="16sp" android:typeface="sans" android:gravity="center"> </TextView> </TableRow> </TableLayout></TableRow><TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="10px" android:layout_marginLeft="8px"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:width="300px" android:text="Incidencias" android:textSize="16sp" android:typeface="sans" android:textStyle="bold"> </TextView> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="10px" android:layout_marginLeft="3px"> <EditText android:id="@+id/incidencias" android:layout_width="wrap_content" android:layout_height="fill_parent" android:maxWidth="300px" android:text="" android:textSize="18sp" android:typeface="sans" android:lines="5"> </EditText> </TableRow> </TableLayout></TableRow><TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5px"> <TextView android:id="@+id/tareasRelacionadas" android:width="300px" android:maxWidth="300px" android:text="Ver tareas relacionadasnclick for more..." android:textSize="16sp" android:typeface="sans" android:gravity="center"> </TextView> </TableRow> </TableLayout></TableRow><TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="10px" android:layout_gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" 166
  • 168. Anexo A Definición de la interfaz de usuario android:layout_height="wrap_content" android:layout_marginTop="10px"> <Button android:id="@+id/btGuardar" android:width="150px" android:layout_height="wrap_content" android:text="Guardar" android:layout_gravity="center_horizontal" android:textSize="14sp"> </Button> </TableRow> </TableLayout> </TableRow></TableLayout>3. detalles_ubicacion.xml<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="center" android:gravity="center" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10px"> <TextView android:id="@+id/txUbicacion" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:autoLink="all" android:textSize="16sp" android:textStyle="bold"> </TextView> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10px"> <TextView android:id="@+id/txEdificio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:layout_gravity="center" android:autoLink="all" android:textSize="16sp" android:textStyle="bold"> </TextView> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10px"> <Button android:id="@+id/btIniciaGuiado" android:width="130px" android:layout_height="wrap_content" android:text="Iniciar Guiado" android:layout_gravity="center" android:textSize="14sp"> </Button> </TableRow></TableLayout>4. detalles_usuario.xml<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="center" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="10px"> <ImageView android:id="@+id/foto" android:layout_width="100px" android:layout_height="100px"> </ImageView> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="10px"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Israel Arjona Vizcaíno" android:layout_gravity="center_horizontal" android:autoLink="all" android:textSize="15sp" android:typeface="sans"> </TextView> </TableRow> <TableRow android:layout_width="fill_parent" 167
  • 169. Anexo A Definición de la interfaz de usuario android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="10px"> <TextView android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="mojolote@hotmail.com" android:layout_gravity="center_horizontal" android:autoLink="all" android:textSize="13sp"> </TextView> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5px"> <TextView android:id="@+id/telefono" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3111111" android:layout_gravity="center_horizontal" android:autoLink="all" android:textSize="13sp"> </TextView> </TableRow></TableLayout>5. guiado.xml<?xml version="1.0" encoding="utf-8"?><TableLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="wrap_content"xmlns:android="http://schemas.android.com/apk/res/android"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="9px" android:gravity="center"> <TextView android:id="@+id/txGuiado" android:text=" ::Bitacora de eventos:: nn" android:width="300px" android:maxWidth="300px" android:textSize="14sp" android:typeface="sans" android:gravity="left" android:textStyle="bold"> </TextView> </TableRow> </TableLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15px" android:gravity="center"> <ImageView android:id="@+id/imFondoGuiado" android:width="170px" android:maxWidth="170px" android:height="170px" android:maxHeight="170px" android:gravity="center"> </ImageView> </TableRow> </TableLayout> </TableRow></TableLayout>6. lista.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" /> 168
  • 170. Anexo A Definición de la interfaz de usuario <TextView android:id="@+id/android:empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/main_no_items" android:gravity="center" /></LinearLayout>7. login.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp"> <ImageView android:id="@+id/imgAtrexis" android:src="@drawable/candado" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:padding="10dp" /> <TextView android:id="@+id/lblUsername" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/imgAtrexis" android:text="Username:" /> <EditText android:id="@+id/txtUsernameLogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:layout_below="@id/lblUsername" android:layout_marginBottom="5dp" /> <TextView android:id="@+id/lblPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/txtUsernameLogin" android:text="Password:" /> <EditText android:id="@+id/txtPasswordLogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/lblPassword" android:password="true" android:singleLine="true" android:layout_marginBottom="10dp" /> <Button android:id="@+id/btnEntrarLogin" android:layout_width="80dp" android:layout_height="wrap_content" android:layout_below="@id/txtPasswordLogin" android:padding="10dp" android:layout_centerInParent="true" android:text="Entrar" /> <TextView android:id="@+id/lblPowered" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:textStyle="bold" android:textColor="#FFFFFF" android:text="Powered By Israel" /></RelativeLayout>8. nueva_tarea_recurso.xml<?xml version="1.0" encoding="utf-8"?><TableLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="wrap_content"xmlns:android="http://schemas.android.com/apk/res/android"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="9px" android:gravity="center"> <TextView android:id="@+id/descripcionTareaNuevaTarea" android:text="" android:textSize="16sp" android:typeface="sans" android:gravity="center"> </TextView> </TableRow> </TableLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="8px" android:layout_marginTop="10px"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> 169
  • 171. Anexo A Definición de la interfaz de usuario <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10px"> <TextView android:text="Recurso" android:textSize="18sp" android:typeface="sans" android:textStyle="bold"> </TextView> <EditText android:id="@+id/idrecurso" android:text="" android:textSize="18sp" android:typeface="sans" android:textStyle="bold" android:layout_marginLeft="5px" android:maxWidth="100px" android:width="100px" android:height="50px" android:maxHeight="50px"> </EditText> <Button android:id="@+id/btCargar" android:width="130px" android:layout_height="wrap_content" android:text="Por barras" android:layout_gravity="center" android:textSize="14sp"> </Button> </TableRow> </TableLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="8px" android:layout_marginTop="10px"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide" android:gravity="center"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10px" android:gravity="center"> <TextView android:id="@+id/fechaNuevaTarea" android:text="Fecha: " android:textSize="18sp" android:typeface="sans" android:textStyle="bold" android:gravity="center"> </TextView> </TableRow> </TableLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15px" android:gravity="center"> <ImageView android:id="@+id/imBarras" android:width="170px" android:maxWidth="170px" android:height="170px" android:maxHeight="170px" android:gravity="center"> </ImageView> </TableRow> </TableLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:animation="@anim/layout_animation_row_left_slide"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="9px" android:gravity="center"> <TextView android:id="@+id/descripcionRecurso" android:text="" android:textSize="16sp" android:typeface="sans" android:gravity="center"> </TextView> </TableRow> </TableLayout> </TableRow></TableLayout> 170
  • 172. Anexo B Plan de pruebas T-GuideAnexo B Plan de pruebas T-GuideEl plan de pruebas constará de los siguientes puntos: 1. Introducción. 2. Descripción del plan. 3. Casos de prueba. 4. Procedimientos de prueba. 5. Resultados de pruebasIntroducciónEste documento define el plan de pruebas basado en el estándar IEEE 829[STD829] para pruebas de software, que permitirá verificar la funcionalidad delsistema T-Guide, que es una aplicación cliente-servidor que permite establecertareas asignadas a recursos físicos del mundo real, y sirve para recordar alusuario que la tarea debe cumplimentarse, además incluye la funcionalidad para lalocalización y guiado de dispositivos móviles a través de RFID.La aplicación está compuesta de cuatro módulos principales:1. Conexión y configuración.2. Auto-identificación.3. Localización y guiado.4. Administración de tareas.Descripció n del planCaracterísticas a ser probadasEl plan de pruebas contiene la descripción de los casos de prueba definidos con elfin de validar y verificar que la aplicación T-Guide cumple con los requisitosrequeridos para la correcta administración y recordatorio de tareas del usuario.Características excluidas de las pruebas No se dará prioridad al diseño de interfaz de las aplicaciones que se utilicen para probar la aplicación. Las aplicaciones no serán probadas en dispositivos móviles que no cuenten con soporte para Android. Habrá casos en los que la funcionalidad que se pruebe sea simulada. 171
  • 173. Anexo B Plan de pruebas T-GuideEnfoqueDebido a que las mediciones que se utilizarán serán principalmente defuncionalidad, por lo que no se tomará en cuenta el tiempo de respuesta, ni laexactitud de la función.Criterio pasa/ no pasa de casos de pruebaEn la descripción de los casos de prueba, se detallarán los resultados esperadospara cada uno de ellos. Se considerará que una prueba ha pasado con éxitocuando los resultados esperados coincidan con los descritos en el caso de prueba.En caso de no coincidencia, se analizarán las causas y se harán lasmodificaciones necesarias hasta que se cumplan con los resultados esperados.Criterios de suspensión y requerimientos de reanudaciónEn ningún caso se suspenderán definitivamente las pruebas. Cada vez que sepresente que el caso no pasa una prueba, inmediatamente se procederá a evaluary corregir el error, permaneciendo en la prueba de este caso hasta que ya no sepresenten dificultades con él.Tareas de pruebasLas tareas a desarrollar para preparar y aplicar las pruebas son: Tabla 30 Tareas a desarrollar para las pruebas Tarea Responsa Tarea Habilidades especiales precedente bilidades Conocimiento sobre servicios Terminación del1. Preparación del basados en localización, las Autor de la análisis y diseñoplan de pruebas. aplicaciones cliente servidor, los tesis. de la aplicación. servicios Web y del IEEE Std. 829.2. Preparación del Conocimiento sobre la estructura de Autor de ladiseño de las Tarea 1. la Aplicación T-Guide, sus clases y tesis.pruebas. métodos, y del IEEE Std. 829. Conocimiento sobre servicios3. Preparación de los Autor de la Tarea 2. basados en localización, lascasos de prueba. tesis. aplicaciones cliente servidor Conocimiento del entorno y4. Aplicación de Autor de la Tarea 3. preparación del sistema desarrolladopruebas. tesis. para su ejecución. 172
  • 174. Anexo B Plan de pruebas T-Guide Conocimiento de programación en JAVA, Android, Restlet, OSGi,5. Resolver los JSON, servicios Web, hilos, sockets, Autor de laincidentes de Tarea 4. protocolo HTTP; además tesis.pruebas. conocimiento en base de datos PostgreSQL. Conocimiento de las preguntas de6. Evaluación de Tarea 4. Autor de la investigación, la hipótesis de prueba,resultados. Tarea 5. tesis. y los objetivos de esta tesis.Liberación de las pruebasLa entrada especificada y la salida esperada en cada caso de prueba, seránsuficientes para la comprobación del objetivo alcanzado y por lo tanto para laaceptación de las pruebas.Requisitos ambientalesLas características y propiedades físicas y lógicas requeridas para el ambiente depruebas, son las siguientes: Tabla 31 Tecnología física utilizada Equipo Procesador Intel P4 o superior. 512MB de memoria RAM o PC de escritorio o superior. Laptop 80 GB en disco duro. Windows XP o superior. Android OS. Dispositivo móvil Wi-Fi. Bluetooth. Lector de tarjetas RFID Conexión mediante USB. Tarjetas RFID Compatibles con el lector RFID. Tabla 32 Tecnología de programación utilizada Herramientas Android SDK 1.2 Eclipse 3.4 Ganymede como entorno de programación Celular HTC G2 con Android Apache Tomcat 6.0 Apache Felix 1.4.1 API ZXing 2.0 para la decodificación del código de barras PostgreSQL 8.3. 173
  • 175. Anexo B Plan de pruebas T-GuideResponsabilidadesToda la responsabilidad de las pruebas recae en el autor de la tesis.Riesgos y contingencias Falta de tiempo: El tiempo es un factor importante que genera incertidumbre a la hora de aplicar las pruebas, por lo que se tomarán como mínimo 16 casos de prueba, si el tiempo lo permite se extenderán las pruebas a otros casos. Todas las fallas que se pudieran presentar en el transcurso del desarrollo de las pruebas deberán ir resolviéndose de manera iterativa por el responsable de esta tesis, hasta que la falla no produzca más.Casos de pruebasCaracterísticas a probarLos distintos casos de prueba definen las características a ser probadas que semuestran en la tabla 33. Tabla 33 Características a probar de la aplicación Característica Descripción Define los casos de prueba para verificar la correctaConfiguración y configuración de los dispositivos utilizados por el cliente:conexiones lector RFID; la conexión entre el cliente y el servidor y la conexión de la base de datos en la aplicación T-Guide. Define los casos de prueba para la identificación automática de recursos físicos en cercanía del dispositivo móvil,Auto-identificación utilizando como tecnologías de Auto-ID el código de barras y tarjetas RFID. Define los casos de prueba para la localización por medio de RFID de un dispositivo móvil. Además se definen losLocalización y guiado del casos de prueba para la realización de la tarea de guiado, ladispositivo móvil cual se refiere a guiar a un usuario de una localización origen obtenida automáticamente a una destino elegida por el usuario. Define los casos de prueba para el manejo de tareas, la correcta consulta y almacenamiento de la información deAdministración de tareas estas en la base de datos y la obtención de resultados a través del protocolo HTTP.Pruebas de Define los casos de prueba para la gestión de la informaciónadministración de la de la base de datos, como es la consulta, modificación,información de la base de eliminación y actualización.datos 174
  • 176. Anexo B Plan de pruebas T-GuidePruebas de configuración y conexionesT-Guide-001 Pruebas de configuración y conexión. T-Guide-001-001 Configuración y conexión del cliente móvil con el lector RFID. T-Guide-001-002 Configuración y conexión del servidor de tareas con el dispositivo móvil. T-Guide-001-003 Configuración y conexión del servidor de tareas con la base de datos.Pruebas de auto-identificaciónT-Guide-002 Pruebas de auto-identificación. T-Guide-002-001 Captura y decodificación del código de barras. T-Guide-002-002 Obtención de las tarjetas RFID en cercanía.Pruebas de localización y guiado del dispositivo móvilT-Guide-003 Pruebas de localización y guiado del dispositivo móvil. T-Guide-003-001 Localización del dispositivo móvil por RFID. T-Guide-003-002 Localización del dispositivo móvil por QRCodes. T-Guide-003-003 Guiado del dispositivo móvil.Pruebas de administración de tareasT-Guide-004 Pruebas de administración de tareas. T-Guide-004-001 Invocación del servicio Web para la obtención de un listado de tareas pendientes. T-Guide-004-002 Invocación del servicio Web para completar/cancelar una tarea. T-Guide-004-003 Invocación del servicio Web para el almacenamiento de una nueva tarea del usuario. 175
  • 177. Anexo B Plan de pruebas T-GuidePruebas de administración de la información de la base de datosT-Guide-005 Pruebas de administración de la información de la base de datos. T-Guide-005-001 Administración de la información de los usuarios. T-Guide-005-002 Administración de la información de los recursos. T-Guide-005-003 Administración de ubicaciones. T-Guide-005-004 Administración de tareas. T-Guide-005-005 Administración de tareas de los usuarios.Procedim iento de pruebasEste apartado contiene la descripción de los procedimientos correspondientes atodos los casos de prueba que conforman el presente documento. La organizaciónde todos los casos de prueba se basa en cada uno de los grupos definidos. Elobjetivo fundamental de cada uno de los casos es verificar y validar unafuncionalidad específica de la aplicación T-Guide acrónimo de plan de pruebas.Dentro de cada uno de los grupos de pruebas se definen casos de prueba paracierta funcionalidad específica a modo de comprobar que cumple con aspectosfuncionales que deben ser cubiertos por ese grupo de casos de prueba.Cada uno de los casos de prueba se enfoca en la validación y verificación de unafuncionalidad concreta de la aplicación T-Guide. La descripción de cada uno de loscasos de prueba muestra el objetivo general del grupo, el entorno de pruebanecesario y todos los casos de prueba que lo conforman.Para cada uno de los casos de prueba se define el propósito del caso, el entornonecesario para su ejecución, el procedimiento y los resultados esperados de laprueba.Como recomendación para la revisión de los casos de prueba, se deben llevar acabo en orden de aparición.T-Guide-001 Pruebas de conexión y configuraciónObjetivoVerificar que la conexión entre dispositivo móvil y el lector RFID se establezcacorrectamente. Asimismo que la comunicación del servidor con la base de datos yentre el cliente y el servidor se lleve a cabo de una forma correcta. 176
  • 178. Anexo B Plan de pruebas T-GuideEntorno de pruebaPara los casos de prueba contenidos en este grupo se utilizan los siguienteselementos: PC o Laptop. Lector de tarjetas RFID. Teléfono móvil HCT G2 con sistema operativo Android. Manejador de bases de datos PostgreSQL 8.3. Apache Felix con bundle de servidor de tareas iniciado. Tarjetas RFID.T-Guide-001-001 Configuración y conexión del cliente móvil con el lectorRFID Objetivo Establecer la configuración en el archivo config.xml y verificar la conexión del software T-Guide con el lector de tarjetas RFID. Entorno de prueba La prueba se llevará a cabo con un teléfono que contenga el sistema operativo Android y un lector de tarjetas RFID con capacidad para conectarse al puerto USB. Proceso 1. Conectar el lector de tarjetas RFID al puerto USB de la computadora. 2. Establecer los parámetros de conexión al teléfono en el archivo config.xml. 3. Ejecutar la aplicación e iniciar el hilo de conexión al lector de tarjetas mediante el lanzamiento de la tarea de guiado, observar los resultados. Resultados Lograr la conexión con el lector RFID para comenzar a obtener tarjetas RFID en cercanía.T-Guide-001-002 Configuración y conexión del servidor de tareas con eldispositivo móvil Objetivo Establecer la configuración en el archivo config.xml y verificar la conexión del software T-Guide con el servidor de tareas OSGI, instalado como un bundle en el servidor Apache Felix. 177
  • 179. Anexo B Plan de pruebas T-Guide Entorno de prueba La prueba se llevará a cabo con un teléfono que contenga el sistema operativo Android y una computadora (PC o Laptop) que tenga el servidor de tareas OSGI instalado en forma de un bundle en Apache Felix. Proceso 1. Iniciar el servidor Apache Felix. 2. Si el bundle Servidor_OSGI_Tareas_1.0.0.jar no está instalado, proceder con su instalación. 3. Iniciar el bundle anteriormente mencionado. 4. Establecer los parámetros de conexión del teléfono móvil con el servidor en el archivo config.xml. 5. Realizar una petición GET al servicio Web ofrecido por el servidor de tareas. 6. Verificar que se reciban resultados. Resultados Lograr que se establezca la comunicación entre el cliente Android y el servidor de tareas OSGI.T-Guide-001-003 Configuración y conexión del servidor de tareas con la basede datos Objetivo Establecer la configuración de la base de datos en el archivo OSGITareas.conf y verificar la conexión del servidor de tareas OSGI y el manejador de base de datos. Entorno de prueba La prueba se llevará a cabo utilizando una computadora (PC o Laptop) con el manejador de bases de datos PostgreSql 8.3 en ejecución. Proceso 1. En caso de que el servidor de base de datos no se encuentre en ejecución, iniciarlo. 2. Establecer los parámetros de conexión a la base de datos en el archivo OSGITareas.conf. 3. Ejecutar la aplicación y observar los resultados. Resultados Obtener y mantener una conexión a la base de datos y verificar que se cuenta con el acceso a ella en la aplicación T-Guide. 178
  • 180. Anexo B Plan de pruebas T-GuideT-Guide-002 Pruebas de auto-identificaciónObjetivoVerificar que la captura y decodificación de una imagen con un código de barrasse lleve a cabo exitosamente. Asimismo comprobar que la lectura de tarjetas RFIDen cercanía al lector RFID se realiza de una forma correcta.Entorno de pruebaPara los casos de prueba contenidos en este grupo se utilizan los siguienteselementos: Lector de tarjetas RFID. Computadora. Teléfono móvil con sistema operativo Android. API ZXing 1.2. Imagen con código de barras impreso y legible.T-Guide-002-001 Captura y decodificación del código de barras Objetivo Capturar una imagen, mediante la cámara inmersa en el dispositivo móvil, que contenga un código de barras, decodificar la imagen y obtener el identificador asociado al código. Entorno de prueba La prueba se llevará a cabo utilizando el dispositivo móvil y la API ZXing para la decodificación del código de barras, además de la cámara fotográfica que incluida en el dispositivo. Proceso 1. Iniciar la captura de la imagen mediante la cámara fotográfica del dispositivo móvil. 2. Capturar la imagen con el código de barras impreso. 3. Observar los resultados. Resultados Obtener el identificador asociado a un código de barras mediante la captura y decodificación utilizando el software T-Guide.T-Guide-002-002 Obtención de las tarjetas RFID en cercanía Objetivo Obtener los identificadores de las tarjetas RFID en cercanía al dispositivo móvil mediante la conexión a un lector de tarjetas RFID. 179
  • 181. Anexo B Plan de pruebas T-Guide Entorno de prueba La prueba se llevará a cabo utilizando el dispositivo móvil, una computadora y un lector de tarjetas RFID con conexión al puerto USB. Proceso 1. Iniciar alguna tarea que involucre la lectura mediante RFID. 2. Observar los resultados obtenidos. Resultados Obtener el identificador asociado a las tarjetas RFID en cercanía al lector RFID mediante el software T-Guide.T-Guide-003 Pruebas de localización y guiado del dispositivo móvilObjetivoVerificar que la localización del dispositivo móvil se realiza de una forma acertada.Asimismo que en la tarea de guiado se lleve a cabo de una forma correctamostrando la posición del dispositivo en todo momento.Entorno de pruebaPara los casos de prueba contenidos en este grupo se utilizan los siguienteselementos: Lector de tarjetas RFID. Computadora. Teléfono móvil con sistema operativo Android. Apache Felix con bundle de servidor de tareas iniciado. Manejador de bases de datos PostgreSQL iniciado.T-Guide-003-001 Localización del dispositivo móvil por RFID Objetivo Obtener la ubicación del dispositivo móvil en una posición donde existen tarjetas RFID en cercanía. Entorno de prueba La prueba se llevará a cabo utilizando el dispositivo móvil, una computadora y un lector de tarjetas RFID con conexión al puerto USB. Asimismo, es necesario que el servidor de tareas esté corriendo en forma de un bundle en Apache Felix y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de las ubicaciones activa. Previo a esto se deben haber verificado las pruebas de configuración y conexión y de auto- identificación. 180
  • 182. Anexo B Plan de pruebas T-Guide Proceso 1. Iniciar los servidores (PostgreSQL, Apache Felix y el servidor de tareas). 2. Iniciar la tarea de guiado en interiores por RFID. 3. Observar y verificar que el resultado de la posición actual sea el correcto. Resultados Se espera que la ubicación actual del dispositivo se despliegue en pantalla y sea la localización correcta.T-Guide-003-002 Localización del dispositivo móvil por QRCodes Objetivo Obtener la ubicación del dispositivo móvil mediante la captura y decodificación de un código de barras. Entorno de prueba La prueba se llevará a cabo utilizando el dispositivo móvil. Asimismo, es necesario que el servidor de tareas esté corriendo en forma de un bundle en Apache Felix y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de las ubicaciones activa. Previo a esto se deben haber verificado las pruebas de configuración y conexión y de auto- identificación. Proceso 1. Iniciar los servidores (PostgreSQL, Apache Felix y el servidor de tareas). 2. Iniciar la tarea de guiado en interiores por QRCodes. 3. Observar y verificar que el resultado de la posición actual sea el correcto. Resultados Se espera que la ubicación actual del dispositivo se despliegue en pantalla y sea la localización correcta.T-Guide-003-003 Guiado del dispositivo móvil Objetivo Guiar al dispositivo móvil desde su posición actual al destino, actualizando constantemente su posición utilizando la tecnología RFID o QRCodes. Entorno de prueba La prueba se llevará a cabo utilizando una computadora, un dispositivo móvil y un lector de tarjetas RFID con conexión al puerto USB. Asimismo, es necesario que el servidor de tareas esté corriendo en forma de un bundle en Apache Felix y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de las ubicaciones activa. Previo a esto se 181
  • 183. Anexo B Plan de pruebas T-Guide deben haber verificado las pruebas de configuración y conexión y de auto- identificación. Proceso 1. Iniciar los servidores (PostgreSQL, Apache Felix y el servidor de tareas). 2. Iniciar la tarea de guiado en interiores (por RFID o por QRCodes). 3. Se obtiene la posición actual por RFID o QRCodes (ver T-Guide-003- 001 y T-Guide-009-002). 4. Seleccionar el destino hacia el que se guiará. 5. Ir hacia el destino mostrado en el dispositivo, verificar que se refresque la posición del dispositivo. 6. Observar y verificar los resultados. Resultados Se espera que el dispositivo móvil sea guiado de forma correcta y que se refresque en todo momento la posición del dispositivo T-Guide 003-002.T-Guide-004 Pruebas de administración de tareasObjetivoVerificar que la administración de las tareas (consulta, completar/cancelar y nuevatarea) se lleven a cabo de forma exitosa.Entorno de pruebaPara los casos de prueba contenidos en este grupo se utilizan los siguienteselementos: Computadora. Teléfono móvil con sistema operativo Android. Apache Felix con bundle de servidor de tareas iniciado. Manejador de bases de datos PostgreSQL iniciado.T-Guide-004-001 Invocación del servicio Web para la obtención de un listadode tareas pendientes Objetivo Obtener una lista de las tareas pendientes que tiene un usuario en especifico a través de la conexión entre el cliente con el software T-Guide mediante HTTP con el servidor de tareas, el cual ofrece un servicio Web. Entorno de prueba La prueba se llevará a cabo utilizando una computadora y un dispositivo móvil. Asimismo, es necesario que el servidor de tareas esté corriendo en forma de un bundle en Apache Felix y que el manejador de bases de datos 182
  • 184. Anexo B Plan de pruebas T-Guide PostgreSQL esté en ejecución con la base de datos de tareas activa. Previo a esto se deben haber verificado las pruebas de configuración y conexión. Proceso 1. Iniciar los servidores (PostgreSQL, Apache Felix y el servidor de tareas). 2. Iniciar la aplicación T-Guide. 3. Elegir el listado de tareas pendientes. 4. Observar y verificar los resultados obtenidos. Resultados Se espera que el listado de tareas pendientes que se visualice en el dispositivo cliente a través del software T-Guide sea el correcto, es decir, que sean las tareas activas pertenecientes al usuario que realiza la consulta.T-Guide-004-002 Invocación del servicio Web para completar/cancelar unatarea Objetivo Desactivar una tarea pendiente, ya sea cancelándola o completándola, a través de la conexión entre el cliente con el software T-Guide mediante HTTP con el servidor de tareas, el cual ofrece el servicio Web. Entorno de prueba La prueba se llevará a cabo utilizando una computadora y un dispositivo móvil. Asimismo, es necesario que el servidor de tareas esté corriendo en forma de un bundle en Apache Felix y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Previo a esto se deben haber verificado las pruebas de configuración y conexión. Proceso 1. Iniciar los servidores (PostgreSQL, Apache Felix y el servidor de tareas). 2. Iniciar la aplicación T-Guide. 3. Elegir el listado de tareas pendientes. 4. Elegir la tarea que se desea completar/cancelar. 5. Completar o cancelar la tarea. 6. Observar y verificar los resultados obtenidos. Resultados Se espera que la operación de cancelación o completitud se realice exitosamente para la tarea elegida y que esto se refleje en el listado de tareas pendientes, es decir, que esta tarea desaparezca de dicho listado. 183
  • 185. Anexo B Plan de pruebas T-GuideT-Guide-004-003 Invocación del servicio Web para el almacenamiento de unanueva tarea del usuario Objetivo Establecer una nueva tarea como pendiente para el usuario que la crea a través de la conexión entre el cliente con el software T-Guide mediante HTTP con el servidor de tareas, el cual ofrece el servicio Web. Entorno de prueba La prueba se llevará a cabo utilizando una computadora y un dispositivo móvil. Asimismo, es necesario que el servidor de tareas esté corriendo en forma de un bundle en Apache Felix y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Previo a esto se deben haber verificado las pruebas de configuración, conexión y de auto-identificación. Proceso 1. Iniciar los servidores (PostgreSQL, Apache Felix y el servidor de tareas). 2. Iniciar la aplicación T-Guide. 3. Elegir el listado de tareas pendientes. 4. Elegir nueva tarea. 5. Elegir la actividad a la que pertenece. 6. Elegir el tipo de tarea. 7. Elegir el recurso al que se asociará la tarea (Por barras o introduciendo el identificador). 8. Elegir guardar la tarea. 9. Observar y verificar los resultados obtenidos. Resultados Se espera que el almacenamiento de la nueva tarea se realice exitosamente con el recurso asociado elegido y que esto se refleje en el listado de tareas pendientes, es decir, que esta tarea aparezca en dicho listado.T-Guide-004 Pruebas de administración de la información de la base dedatosObjetivoVerificar que la información de la base de datos se almacena, se c onsulta, seelimina y se modifica de forma correcta manteniendo la integridad de lainformación y se obtiene lo que se pide en cada caso. 184
  • 186. Anexo B Plan de pruebas T-GuideEntorno de pruebaPara los casos de prueba contenidos en este grupo se utilizan los siguienteselementos: Computadora. Apache Tomcat iniciado Manejador de bases de datos PostgreSQL iniciado. Aplicación Web de tareas iniciada.T-Guide-005-001 Administración de la información de los usuarios Objetivo Verificar que el módulo de administración de usuarios, en donde se consulta, se modifica, se eliminan y se insertan grupos y usuarios se lleve a cabo de forma exitosa. Entorno de prueba La prueba se llevará a cabo utilizando una computadora. Asimismo, es necesario que el servidor de aplicaciones Apache Tomcat esté corriendo y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Proceso 1. Iniciar los servidores (PostgreSQL y Apache Tomcat). 2. Iniciar la aplicación Web de tareas. 3. Realizar operaciones de modificación, consulta, eliminación e inserción de grupos y usuarios. 4. Observar y verificar los resultados obtenidos. Resultados Se espera que las operaciones realizadas de consulta, modificación, eliminación e inserción se lleven a cabo de forma exitosa y que los datos arrojados sean los correctos.T-Guide-005-002 Administración de la información de los recursos Objetivo Verificar que el módulo de administración de recursos, en donde se consulta, se modifica, se eliminan y se insertan recursos y tipos de recursos se lleve a cabo de forma exitosa. Entorno de prueba La prueba se llevará a cabo utilizando una computadora. Asimismo, es necesario que el servidor de aplicaciones Apache Tomcat esté corriendo y 185
  • 187. Anexo B Plan de pruebas T-Guide que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Proceso 1. Iniciar los servidores (PostgreSQL y Apache Tomcat). 2. Iniciar la aplicación Web de tareas. 3. Realizar operaciones de modificación, consulta, eliminación e inserción de recursos y tipos de recursos. 4. Observar y verificar los resultados obtenidos. Resultados Se espera que las operaciones realizadas de consulta, modificación, eliminación e inserción se lleven a cabo de forma exitosa y que los datos arrojados sean los correctos.T-Guide-005-003 Administración de la información de ubicaciones Objetivo Verificar que el módulo de administración de ubicaciones, en donde se consulta, se modifica, se eliminan y se insertan campus, edificios, planos y ubicaciones se lleve a cabo de forma exitosa. Entorno de prueba La prueba se llevará a cabo utilizando una computadora. Asimismo, es necesario que el servidor de aplicaciones Apache Tomcat esté corriendo y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Proceso 1. Iniciar los servidores (PostgreSQL y Apache Tomcat). 2. Iniciar la aplicación Web de tareas. 3. Realizar operaciones de modificación, consulta, eliminación e inserción de campus, edificios, planos y ubicaciones. 4. Observar y verificar los resultados obtenidos. Resultados Se espera que las operaciones realizadas de consulta, modificación, eliminación e inserción se lleven a cabo de forma exitosa y que los datos arrojados sean los correctos.T-Guide-005-004 Administración de la información de tareas Objetivo Verificar que el módulo de administración de tareas, en donde se consulta, se modifica, se eliminan y se insertan actividades y tareas se lleve a cabo de forma exitosa. 186
  • 188. Anexo B Plan de pruebas T-Guide Entorno de prueba La prueba se llevará a cabo utilizando una computadora. Asimismo, es necesario que el servidor de aplicaciones Apache Tomcat esté corriendo y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Proceso 1. Iniciar los servidores (PostgreSQL y Apache Tomcat). 2. Iniciar la aplicación Web de tareas. 3. Realizar operaciones de modificación, consulta, eliminación e inserción de actividades y tareas. 4. Observar y verificar los resultados obtenidos. Resultados Se espera que las operaciones realizadas de consulta, modificación, eliminación e inserción se lleven a cabo de forma exitosa y que los datos arrojados sean los correctos.T-Guide-005-005 Administración de la información de tareas de los usuarios Objetivo Verificar que el módulo de administración de tareas de los usuarios, en donde se consulta, se modifica, se eliminan y se insertan actividades y tareas se lleve a cabo de forma exitosa. Entorno de prueba La prueba se llevará a cabo utilizando una computadora. Asimismo, es necesario que el servidor de aplicaciones Apache Tomcat esté corriendo y que el manejador de bases de datos PostgreSQL esté en ejecución con la base de datos de tareas activa. Proceso 1. Iniciar los servidores (PostgreSQL y Apache Tomcat). 2. Iniciar la aplicación Web de tareas. 3. Realizar operaciones de modificación, consulta, eliminación e inserción de tareas de los usuarios. 4. Observar y verificar los resultados obtenidos. Resultados Se espera que las operaciones realizadas de consulta, modificación, eliminación e inserción se lleven a cabo de forma exitosa y que los datos arrojados sean los correctos. 187
  • 189. Referencias [STEINIGER 2006] Steiniger Stefan Neun Moritz, Alistair Edwardes. ―Foundations of Location Based Services‖. Zurich, Suiza : Departamento de Geografía, Universidad de Zurich, Suiza, 2006. [GUERRA 2007] Ruiz Guerra Lirio. ―API SMS para el procesamiento de consultas Georeferenciadas / No georeferenciadas‖. Cuernavaca, Morelos: Cenidet, 2007. [QUIÑONEZ 2007] Quiñonez Bernardino, Pedro. ―Gateway SMS Pull para Servicios Basados en Localización con una Arquitectura de Servicios Web‖. Cuernavaca, Morelos: Cenidet, 2007.[BERNARDOS 2003] Bernardos Barbolla Ana M. ―Servicios Móviles de localización‖. España: ceditec, 2003 [MARTINEZ 2005] Martínez Gens Luis E. y Urios de las Heras Mercedes. ―Tecnologías de Localización y Posicionamiento para Servicios Basados en Localización (LBS)‖. España, 2005. [DRANE 1998] C. Drane M. Macnaughtan, and C. Scott. ―Positioning GSM‖. IEEE Communications Magazine, 1998. - Vol. 36. [ESCALONA 2007] Escalona I. Martin y Arroyo F. Barcelo. ―Estudio de disponibilidad de medidas de localización en redes celulares urbanas‖. Madrid, España: IEEE LATIN AMERICA TRANSACTIONS, 2007. - 6 : Vol. 5. [LEE 2001] Lee D.J.Y y Lee W.C.Y. ―Optimize CDMA System Capacity with Location‖. IEEE PIMRC, 2001. [CASAR 2007] Casar Corredera José Ramón y López Molina José Manuel. ―Integración de comunicaciones, localización y provisión inteligente de contenido: arquitectura para servicios moviles móviles emergentes. (COLOCAME)‖. Madrid, España : Jornada de Seguimiento de Proyectos en Tecnologías de Servicios de la Sociedad de la Información, 2007.[BELLAVISTA 2006] Bellavista Paolo y Cinque Marcelo. ―Integrated Support for Handoff Management and Context Awareness in Heterogeneus Wireless Networks‖. Grenoble, Francia, 2006. [PANDEY 2006] Pandey Santosh y Agrawal Prathima. ―A survey on localization techniques for wireless networks‖. Auburn, AL : Electrical and Computer Engineering Auburn University, 2006. [KAVITHA 2006] Muthukrishnan Kavitha. ―WLAN location sharing through a privacy observant architecture‖. Holanda : University of Twente, Faculty of Computer Science Computer Architecture Design and Test for Embedded Systems group, 2006. [FRIEDMAN 2006] Friedman Roy y Kliot Gabriel. ―Location services in wireless Ad Hoc and Hybrid networks: A survey‖. Haifa, Israel : Department of Computer Science Technion, 2006. 189
  • 190. [VARSHAVSKY 2007] Varshavsky Alex. ―The SkyLoc Floor Localization System‖. Toronto, US : University of Toronto, 2007. [CHOI 2006] Choi Youngkyu and Choi Sunghyun. ―Service Charge and Energy- Aware Vertical Handoff in Integrated‖. IEEE [Journal] 2006. [UBICACEL 2008] Iusacell. Servicio Ubicacel de Iusacell. Cunsultado el 8 de abril de 2008 de http://www.iusacell.com.mx.[LOCALIZAME 2008] Telefónica Movistar. Servicio Localízame de Movistar. Consultado el 8 de abril de 2008 de http://www.movistar.com.mx/servicios/serv_loca.html. [AVL REACH 2008] Telcel. AVL Reach / U Localización y Administración Vehicular Telcel. Consultado el 8 de abril de 2008 de http://www.telcel.com/. [SKYHOOK 2008] Skyhook. Skyhook Wireless. Consultado el 23 de junio de 2008 de http://www.skyhookwireless.com. [TRAMIGO 2008] Tramigo. Localizador GPS GSM más avanzado. Consultado el 23 de junio de 2008 de http://www.tramigo.net/spa/default.asp. [GONZALEZ 2003] González Castaño F. J. y García Reinoso J. ―Survivable Bluetooth Location Networks‖. Anchorage, EEUU : IEEE International Conference of Communications, 2003. - 1 : Vol. 1. [MOUSTAFA 2005] Youssef Moustafa y Agrawala Ashok. ―Location-clustering techniques for WLAN location determination systems‖. Maryland, Virginia : University of Maryland at College Park, 2005. - 1 : Vol. I. [FISHER 1998] S. Fischer, H. Grubeck, A. Kangas, H. Koorapaty, E. Larsson, P. Lundqvist, ―Time of Arrival Estimation of Narrowband TDMA Signals for Mobile Positioning‖ Personal Indoor and Mobile Radio Communications, 1998. [RADAR 2000] Paramvir Bahl and Venkata N. Padmanabhan. (2000). ―RADAR: An In- Building RF-based User Location and Tracking System‖. INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE. [WIPS 2000] ―Wireless Indoor Positioning System‖, http://csd.ssvl.kth.se/2000/group12/ [FERSCHA 2001] Ferscha Alois, Beer Wolfgang, Narzt Wolfgang. (2001). ―Location Awareness in Community Wireless LANs‖.[HIGHTOWER 2001] Hightower, J. & Borriello, G. (2001), “Location Systems for Ubiquitous Computing”, IEEE Computer 34(8), 57--66. [HALLBERG 2003] J. Hallberg, M. Nilsson, K. Synnes, ―Bluetooth Positioning‖. (2003) [LIONEL 2004] Lionel M. Ni, Yunhao Liu, Yiu Cho Lau and Abhishek P. Patil. ―LANDMARC: Indoor Location Sensing Using Active RFID‖. Department of Computer Science, Hong Kong University of Science and Technology, Clearwater Bay, Kowloon, Hong Kong, China. Ed. Springer Netherlands 2004. 190
  • 191. [HORUS 2004] Moustafa A. Youssef, Ashok Agrawala. (2004). ―The Horus WLAN location determination system‖. Department of Computer Science, University of Maryland, 2004. [WEISSMAN 2004] Z. Weissman, ―Indoor Location‖. (2004) [CANO 2006] Juan-Carlos Cano, Pietro Manzoni and C.-K. Toh. ―UbiqMuseum: A Bluetooth and Java Based Context-Aware System for Ubiquitous Computing‖. Polytechnic University of Valencia, University of Hong Kong, Hong Kong, China. Ed. Springer Netherlands 2006. [MILLER 2006] L. E. Miller, ―Indoor Navigation for First Responders: A Feasibility Study‖. Feb. 2006 [GAYATHRI 2007] Gayathri Chandrasekaran, Mesut Ali Ergin, Marco Gruteser, Richard P. Martin. (2007). ―Bootstrapping a Location Service through Geocoded Postal Addresses‖. Lecture Notes in Computer Science, 2007.[GIUSTINIANO 2007] Domenico Giustiniano, Francesca Lo Piccolo, Nicola Blefari Melazzi. (2007). ―Relative Localizacion in 802.11/GPS systems‖. Satellite and Space Communications, 2007. IWSSC 07. International Workshop on. [CAALIX 2007] Maged N Kamel Boulos, Artur Rocha, Angelo Martins, Manuel Escriche Vicente, Armin Bolz, Robert Feld, Igor Tchoudovski, Martin Braecklein, John Nelson, Gearóid Ó Laighin, Claudio Sdogati, Francesca Cesaroni, Marco Antomarini, Angela Jobes and Mark Kinirons. (2007). ―CAALIX: Complete Ambient Asisted Living Experiment‖. International Journal of Health Geographics 2007. [MOUSTAFA 2007] Moustafa A. Youssef, Ashok Agrawala. (2007). ―Analysis of the optimal strategy for WLAN location determination systems‖. International Journal of Modeling And Simulation, 2007. [TITICA 2007] Titica, D. Fratu, O. Stanescu, E. Halunga-Fratu, S. (2007). ―Simple Location-based Application Development for Mobile Phones‖. Telecommunications in Modern Satellite, Cable and Broadcasting Services, 2007. TELSIKS 2007. 8th International Conference on. [TESORIERO 2008] R. Tesoriero, J. A. Gallud, M. Lozano, V. M. R. Penichet. ―A Location- aware System using RFID and Mobile Devices for Art Museums‖. Computer Systems Department Universidad de Castilla-La Mancha [RAMES 2005] Rodríguez Ramés ―Estructura de paquetes‖ Revista Software Guru. Marzo - Abril 2005 [ZXING 2009] Multi-format 1D/2D barcode image processing library with clients for Android, Java, and iPhone. Consultado el 15 de noviembre de 2008 de http://code.google.com/p/zxing/ [STD829] Software Engineering Technical Committee of the IEEE Computer Society. IEEE Standard for Software Test Documentation. Disponible en: http://www.ucsc.cl/~marciam/weblog/images/ieeestd829- 1998standardtest_documentation.pdf. Última consulta: Febrero 2009 [FELIX 2009] Apache, Documentación de apache Felix. Consultado en enero de 191
  • 192. 2009 de http://felix.apache.org/site/index.html [RESTLET 2009] Noelios Technology, Documentación de Restlet. Consultado en enero de 2009 de http://www.restlet.org/documentation/ [ANDROID 2008] Android developers, Documentación de Android. Consultado en diciembre de 2008 de http://developer.android.com/guide/index.html [JSON 2009] Android developers, Documentación de Android. Consultado en enero de 2009 de http://developer.android.com/reference/org/json/package- summary.html [HTTP 2009] Android developers, Documentación de Android. Consultado en enero de 2009 de http://developer.android.com/reference/org/apache/http/package- summary.html [ECLIPSE 2008] Eclipse, Documentación de eclipse Ganymede. Consultado en diciembre de 2008 de http://help.eclipse.org/ganymede/index.jsp[BELLAVISTA 2008] Bellavista, P.; Küpper, A. & Helal, S. (2008), ―Location-Based Services: Back to the Future‖, IEEE Pervasive Computing 7(2), 85-89. [OPEN 2009] Open Handset Alliance, ―Android, Official Website‖. Última consulta 12 de mayo de 2009 de http://www.android.com/about/. [OSGI 2009] OSGi Alliance, “OSGi – The Dynamic Module System for Java”. Última consulta 12 de mayo de 2009 de http://www.osgi.org/Main/HomePage [COFETEL 2009] COFETEL, ―Estadísticas de Portabilidad‖. Última consulta mayo de 2009 de http://www.cft.gob.mx/wb/Cofetel_2008/estadisticas_de_portabilidad. [JSON 2009] JSON, ―Introducción a JSON‖. Última consulta 13 de mayo de 2009 de http://www.json.org/json-es.html. [EMCA 2009] ECMA, ―Estándar ECMA-262‖. Última consulta 13 de mayo de 2009 de http://www.ecma-international.org/publications/files/ECMA-ST/Ecma- 262.pdf [GINER 2009] Giner, P.; Cetina, C.; Fons, J. & Pelechano, V. (2009), Presto: A pluggable platform for supporting user participation in Smart Workflows, in MobiQuitous. [NFC 2009] Wikipedia la enciclopedia libre, ―NFC‖. Última consulta mayo de 2009 de http://es.wikipedia.org/wiki/Near_Field_Communication. [JINI 2009] Sun Microsystem, ―Jini‖. Última consulta febrero de 2009 de http://www.jini.org/wiki/Main_Page. [UPNP 2009] UPnP, ―UPnP Forum‖. Última consulta febrero de 2009 de http://www.upnp.org/. [CRICKET 2001] Nissanka B. Priyantha, ―The cricket location-support system‖. International conference on mobile computing and networking, Boston, Massachusetts, US. 2001. 192

×