42
S.E.P. S.E.S. D.G.E.S.T. CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO cenidet “GESTOR DE ACAPARAMIENTO DE SITIOS WEB TRANSCODIFICADOS PARA PLATAFORMA POCKET PC” SEGUNDO REPORTE DE AVANCE CUATRIMESTRAL PRESENTA ING. JUAN CARLOS OLIVARES ROJAS Director de Tesis M.C. JUAN GABRIEL GONZÁLEZ SERNA Codirector de Tesis DRA. AZUCENA MONTES RENDÓN CUERNAVACA, MORELOS ABRIL DE 2006

CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

S.E.P. S.E.S. D.G.E.S.T.

CENTRO NACIONAL DE INVESTIGACIÓN

Y DESARROLLO TECNOLÓGICO

cenidet

“GESTOR DE ACAPARAMIENTO DE SITIOS WEB TRANSCODIFICADOS PARA PLATAFORMA

POCKET PC”

SEGUNDO REPORTE DE AVANCE CUATRIMESTRAL

PRESENTA ING. JUAN CARLOS OLIVARES ROJAS

Director de Tesis M.C. JUAN GABRIEL GONZÁLEZ SERNA

Codirector de Tesis

DRA. AZUCENA MONTES RENDÓN

CUERNAVACA, MORELOS ABRIL DE 2006

Page 2: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

i

Resumen En el presente reporte técnico se muestran los avances de la tesis titulada Gestor de

Acaparamiento de Sitios Web Transcodificados para Plataforma Pocket PC en donde se

muestran de manera general las actividades realizadas así como los resultados obtenidos.

En términos generales se tiene un avance del 70% general de todo el proyecto cumpliendo

al 100% con los objetivos propuestos en la minuta del avance anterior.

Este reporte técnico de actividades está organizado de la siguiente forma. En el

apartado I se muestran la introducción a este tema de tesis, haciendo énfasis en la

metodología de solución y la arquitectura propuesta. En el apartado II, se muestran los

compromisos cumplidos en el período pasado esto con el objetivo de dar un breve repaso

de lo que se hizo para una mejor ubicación de lo que es el trabajo actual. El apartado III

Compromisos para este período es el tema central del presente reporte ya que es aquí

donde se reportan las actividades realizadas durante este periodo entre las cuales

destacan: diseño e implementación del GAP (Gestor de Acaparamiento Local, Pruebas),

adaptación del GAP (ARM, MIPS, SH3), diseño e implementación del GAT (Analizador

HTTP, Integración del Transcodificador, Integración del Acaparador, Sincronizador de la

Caché); así como otras actividades que no estaban en el cronograma de actividades y que

se realizaron. En el apartado IV, se detallan los compromisos por realizar para el siguiente

período como es el caso del diseño e implementación del GAT (Gestor de Desconexión,

Pruebas), Pruebas (Integración del GAP y GAT, Depuración) y por último la Redacción de

Tesis (Pruebas, Capítulos, Revisiones). En el apartado V, se muestran todos los resultados

y logros que se han obtenido durante el desarrollo de este trabajo de tesis, como son las

publicaciones de artículos, los casos de prueba (visualización de recursos Web en línea, en

desconexión, en distintos formatos, visualización del estado de las peticiones, de la

configuración del sistema, etc.) del sistema, entre otros. En el apartado VI, se dan las

conclusiones o sumario de este reporte. Para finalizar, en el capítulo VII, se muestran toda

la literatura empleada en el desarrollo de este trabajo de tesis y en el presente reporte.

Page 3: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

ii

TABLA DE CONTENIDOS

I. INTRODUCCIÓN...................................................................................................................... 1

METODOLOGÍA DE SOLUCIÓN Y ARQUITECTURA................................................................ 1

II. COMPROMISOS CUMPLIDOS (PASADOS)...................................................................... 4

III. COMPROMISOS PARA ESTE PERÍODO ............................................................................ 5

5 DISEÑO E IMPLEMENTACIÓN DEL GAP......................................................................................... 5 GESTOR DE ACAPARAMIENTO LOCAL................................................................................................. 5 PRUEBAS.............................................................................................................................................. 6 ANEXOS ............................................................................................................................................... 6 6. ADAPTACIÓN DEL GAP................................................................................................................ 14 ARM.................................................................................................................................................. 15 MIPS ................................................................................................................................................. 15 SH3.................................................................................................................................................... 15 7. DISEÑO E IMPLANTACIÓN DEL GAT........................................................................................... 15 ANALIZADOR HTTP.......................................................................................................................... 16 INTEGRACIÓN DEL TRANSCODIFICADOR ........................................................................................... 16 INTEGRACIÓN DEL ACAPARADOR ..................................................................................................... 24 SINCRONIZADOR DE CACHÉ .............................................................................................................. 25 OTRAS ACTIVIDADES REALIZADAS EN ESTE PERÍODO................................................................... 27

IV. COMPROMISOS SIGUIENTE PERÍODO........................................................................... 27

7. DISEÑO E IMPLEMENTACIÓN DEL GAT...................................................................................... 28 GESTOR DE DESCONEXIÓN ................................................................................................................ 28 PRUEBAS............................................................................................................................................ 28 8. PRUEBAS ....................................................................................................................................... 28 INTEGRACIÓN DEL GAP Y GAT ........................................................................................................ 28 DEPURACIÓN ..................................................................................................................................... 28 9. REDACCIÓN DE TESIS ................................................................................................................... 29 PRUEBAS............................................................................................................................................ 29 CAPÍTULOS ........................................................................................................................................ 29 REVISIONES ....................................................................................................................................... 29

V. RESULTADOS Y LOGROS IMPORTANTES ...................................................................... 29

PUBLICACIONES ............................................................................................................................... 29 ARTÍCULOS ........................................................................................................................................ 29 LOGROS ............................................................................................................................................. 30 CASOS DE PRUEBA............................................................................................................................ 30 VISUALIZACIÓN DE RECURSOS WEB EN LÍNEA. ................................................................................ 30

Page 4: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

iii

VISUALIZACIÓN DE RECURSOS WEB EN DESCONEXIÓN (ACAPARADOS) .......................................... 31 VISUALIZACIÓN DE RECURSOS EN DISTINTOS FORMATOS................................................................. 32 VISUALIZACIÓN DEL ESTADO DE LAS PETICIONES ............................................................................ 33 VISUALIZACIÓN DE LA CONFIGURACIÓN DEL SISTEMA..................................................................... 34 PRUEBAS MULTIPLATAFORMA .......................................................................................................... 35

VI. CONCLUSIONES .................................................................................................................... 36

VI. REFERENCIAS Y BIBLIOGRAFÍA..................................................................................... 36

Lista de figuras

Figura 1. Modelo general de solución. _______________________________________________________ 2 Figura 2. Arquitectura Moviware de la cual está basado este trabajo. ______________________________ 3 Figura 3. Esquema a bloque de los componentes. ______________________________________________ 3 Figura 4. Arquitectura general del proyecto. __________________________________________________ 4 Figura 5. Cronograma de actividades del período anterior. ______________________________________ 4 Figura 6. Cronograma de actividades del período actual. ________________________________________ 5 Figura 7. Diagrama de caso de uso del GAP.__________________________________________________ 6 Figura 8. Diagrama de clases del GAP. ______________________________________________________ 7 Figura 9. Diagrama de secuencia cuando el recurso no está en la caché y existe patrón de acaparamiento._ 7 Figura 10. Diagrama de secuencia para el caso de uso de configuración del GAP. ____________________ 8 Figura 11. Diagrama de secuencia para la visualización de error cuando no existe conexión y el recurso no

está en la caché. ________________________________________________________________________ 8 Figura 12. Escenario de visualización de error cuando existe conexión, el recurso no está en la caché y no se

pudo obtener recurso en línea. _____________________________________________________________ 9 Figura 13. Diagrama de secuencia para la visualización de errores cuando existe conexión, el recurso no

está en la caché, se pudo obtener en línea pero no transcodificar.__________________________________ 9 Figura 14. Diagrama de secuencia del escenario cuando existe conexión, el recurso no está en la caché, y

existe patrón de acaparamiento. ___________________________________________________________ 10 Figura 15. Diagrama de secuencia para el escenario cuando existe conexión, el recurso no está en la caché,

y el recurso se obtiene en línea. ___________________________________________________________ 10 Figura 16. Diagrama de secuencia que modela el escenario cuando existe conexión, el recurso no está en la

caché, y el recurso se obtiene en línea mediante transcodificación.________________________________ 11 Figura 17. Diagrama de secuencia para el escenario donde el recurso está en la caché sin importar la

conexión. _____________________________________________________________________________ 11 Figura 18. Diagrama de secuencia para el caso de uso de visualización de peticiones.________________ 12 Figura 19. Diagrama de actividades del procesamiento de acaparamiento. _________________________ 12 Figura 20. Diagrama de actividades del proceso de desconexión en el GAP. ________________________ 13 Figura 21. Diagrama de acceso a un recurso de la caché._______________________________________ 13 Figura 22. Diagrama de actividades del proceso de transcodificación._____________________________ 22 Figura 23. Proceso de transcodificación del documento.________________________________________ 22 Figura 24. Modelo-Vista-Controlador en el GAT MT. __________________________________________ 23 Figura 25. GAT MT funcionamiento de proxy. ________________________________________________ 23 Figura 26. GAT MT mecanismo transcodificador. _____________________________________________ 24 Figura 27. Diagrama de clases del GAT MA._________________________________________________ 25 Figura 28. Diagrama de actividades del proceso de sincronización de la caché en el GAP._____________ 26 Figura 29. Sincronización de la caché en el GAT MA. __________________________________________ 26 Figura 30. Caso de prueba número 1._______________________________________________________ 31 Figura 31. Caso de prueba número 2._______________________________________________________ 31 Figura 32. Caso de prueba número 3._______________________________________________________ 32

Page 5: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

iv

Figura 33. Transcodificación de contenidos Web a PDF. _______________________________________ 32 Figura 34. Transcodificación de recursos Web a WML._________________________________________ 33 Figura 35. Transcodificación de contenidos Web a XHTML-MP. _________________________________ 33 Figura 36. Visualización del estado de las peticiones en línea. ___________________________________ 34 Figura 37. Opciones de configuración del GAP _______________________________________________ 35 Figura 38. Ejecución del GAP en Windows: "WinGAP". ________________________________________ 35 Figura 39. Ejecución del GAP en un Smartphone con Windows Mobile: "SmartGAP". ________________ 36

Lista de tablas

Tabla 1. Estructura del archivo contenedor de patrones. _______________________________________ 14 Tabla 2. Archivo patrón del sitio Web http://www.cenidet.edu.mx/ ________________________________ 14 Tabla 3. Archivo de configuración del GAP. _________________________________________________ 14 Tabla 4. Encabezado de una petición HTTP después de haber pasado por el GAP. ___________________ 16 Tabla 5. Documento HTML original. _______________________________________________________ 17 Tabla 6. Documento transformado en XHTML. _______________________________________________ 18 Tabla 7. Documento en XML. _____________________________________________________________ 18 Tabla 8. Archivo intermedio generado.______________________________________________________ 19 Tabla 9. Extracto de la plantilla generada para PDF __________________________________________ 20 Tabla 10. Documento generado en WML.____________________________________________________ 21 Tabla 11. Encabezado de respuesta generado. ________________________________________________ 21 Tabla 12. Selección del puerto 10800 del GAP por parte de la IANA. ______________________________ 30 Tabla 13. Muestra de la bitácora del GAP.___________________________________________________ 34

Page 6: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

1

I. Introducción La presente sección tiene como finalidad dar un pequeño repaso de lo que es este trabajo

de tesis, describiendo los aspectos básicos del trabajo como son descripción del problema,

alcances y limitaciones, objetivos y beneficios; así como una breve introducción al tema.

En un mundo donde la información es pilar en la sociedad, el acceso a ésta se ha vuelto de suma importancia en los últimos años. Actualmente el sueño de acceder a la información desde cualquier lugar, en todo momento y a través de cualquier medio se está realizando gracias en gran medida a los dispositivos móviles.

Los dispositivos móviles hoy en día son muy diversos entre los cuales destacan los teléfonos celulares, los PDAs, los handhelds, entre otros. La creciente popularización de tales dispositivos se ha debido en gran parte a dos fenómenos: el auge de redes inalámbricas y, la creciente miniaturización de componentes a precios realmente accesible a los consumidores.

La problemática que presentan los dispositivos móviles se refiere básicamente al hecho de que los recursos disponibles en la Web en la gran mayoría de los casos no están diseñados para esta nueva clase de aparatos [Alarcón02]. Por otra parte, la Web está basada en HTTP/TCP lo cual hace que sea orientada a conexión. En dichos protocolos se requieren de conexiones persistentes y fiables entre los clientes y los servidores, de lo contrario las transacciones no pueden lograrse. Desafortunadamente los dispositivos móviles presentan características totalmente distintas a las que se presentan en una arquitectura cliente/servidor tradicional: no se puede garantizar enlaces confiables y persistentes la mayoría del tiempo, es por esto que no se pueden visualizar recursos Web [González02a].

Para solucionar el problema de la visualización de recursos de la Web en dispositivos móviles se hace uso de dos conceptos básicos: el acaparamiento y la transcodificación de contenidos Web. Por acaparamiento se entiende el proceso de replicación y procesamiento de datos en desconexión que han sido copiados al cliente móvil [Valenzuela02]. De esto ya se abundó en el estado del arte del reporte anterior, pero la mejor analogía para entender el proceso es hablar de una “recarga de datos”, así como los dispositivos móviles necesitan de recargar sus baterías para tener autonomía y lograr su movilidad, los dispositivos móviles necesitan. Por transcodificación se entiende el proceso de conversión y adaptación de un recurso en la Web para que se ajuste en un dispositivo móvil y pueda ser visualizado de la mejor manera posible [Uriarte04].

El objetivo principal de este trabajo es desarrollar un prototipo de agente (servicio)

intermediario para dispositivos Pocket PC 2000, que gestione el acaparamiento de páginas

Web cuando se presenten eventos de desconexión. La meta de este trabajo es que la Web este a un tap (punteo) de distancia por parte

de los usuarios; es decir; que la Web este presente en el bolsillo de los usuarios.

Metodología de solución y arquitectura El objetivo de este apartado es mostrar de manera breve como se está solucionando el

problema, esto es de suma importancia para entender el contexto donde está ubicado este

trabajo ya que se define una terminología propia de esta investigación.

Page 7: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

2

Para solucionar este problema se planteo una variación a la arquitectura cliente/servidor con intermediarios. Esto con la finalidad de mantener sin cambios tanto a las aplicaciones clientes como servidoras. Este esquema puede ser visto en la Figura 1.

Figura 1. Modelo general de solución.

Para ello se proponen dos servicios intermediarios uno en el lado cliente y otro en el

lado servidor. El servicio intermediario en el lado cliente recibe el nombre de GAP (Gestor de Acaparamiento para Pocket PC) y el servicio en el lado cliente recibe el nombre de GAT (Gestor de Acaparamiento y Transcodifcación).

Este proyecto forma parte de la plataforma de Software desarrollada en el cenidet denominada Moviware (básicamente un middleware para dispositvos móviles) cuya finalidad es brindar una serie de servicios a clientes móviles que están propensos a desconexiones frecuentes [González03]. En la Figura 2, se muestra gráficamente donde está inmerso el presente trabajo.

El desarrollo de este trabajo se centra en el GAP (círculo continuo) dado que este servicio intermediario en el lado cliente se ejecuta en dispositivos móviles Pocket PC y hasta el momento no se ha encontrado referencias de algo similar; por otra parte, también es importante el GAT (círculo con líneas en cuadros) que surge de la integración de dos módulos de la arquitectura Moviware: del Acaparador [Verduzco03] y del Transcodificador [Uriarte04]. Las entradas de este proyecto dependen de los patrones obtenidos por el módulo Minero (círculo con líneas punteadas circularmente).

El GAP esta formado por tres partes básicas: un observador, un GAL (Gestor de Acaparamiento Local) y un GDL (Gestor de Desconexiones Locales). Es la parte más novedosa de este trabajo de tesis por que existen pocos servicios de red para esta clase de plataforma. Además de ser el primer desarrollo totalmente ejecutable en esta clase de dispositivos. Por otra parte, el GAT está formado por dos componentes: el MA (Mecanismo

Page 8: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

3

Acaparador) encargado de interpretar los patrones generados por el minero de bitácoras Web [Hernández05], descargar el patrón, comprimirlo y enviarlo al cliente móvil; y el MT (Mecanismo Transcodificador) que es el encargado de transformar, reformatear y adaptar el contenido Web para el cliente móvil. Esto se puede visualizar en la Figura 4. En la Figura 3 se muestra de modo generalizado la forma en como interactúan los distintos componentes desarrollados. Se nota que la comunicación se realiza a través de encabezados de solicitud y respuesta en HTTP.

Figura 2. Arquitectura Moviware de la cual está basado este trabajo.

Figura 3. Esquema a bloque de los componentes.

Page 9: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

4

Figura 4. Arquitectura general del proyecto.

II. Compromisos cumplidos (pasados) En la revisión anterior se cumplieron las actividades pasadas (se tenían problemas con el

Observador y GDL pero se tenía de adelanto un porcentaje de esta actividad). El periodo

pasado se aceptó un 36.25% de avance a este trabajo. Las actividades realizadas se

muestran en la Figura 5.

# C o n c e p t o 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

1 E v a lu a c ió n d e h e r r a m ie n t a sE m b e d d e d V i s u a l T o o l s

V i s u a l S t u d i o . N e tJ a v a 2 M ic r o E d i t i o n

O t r a s h e r r a m ie n t a sC o m p a r a t i v a s

2 A n a l i s i s d e r e c u r s o s a a c a p a r a rT a m a ñ o

T ip o d e r e c u r s o sE s t r u c t u r a d e a lm a c e n a m ie n t o

D o c u m e n t a c ió n

3 E s t u d io h e r r a m ie n t a s e le c c io n a d a

4 E s t u d io d e M o v iw a r eA c a p a r a d o r

C o n t e n e d o r d e P a t r o n e sT r a n s c o d i f i c a d o r

G e s t o r d e d e s c o n e x ió nD o c u m e n t a c ió n

5 D is e ñ o e im p le m e n t a c ió n d e l G A PO b s e r v a d o r

G e s t o r d e D e s c o n e x ió n L o c a l

S E P T O C T N O V D I C

100%

100%

100%

100%

100%

# C o n c e p t o 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 41 E v a lu a c ió n d e h e r r a m ie n t a s

E m b e d d e d V i s u a l T o o l sV i s u a l S t u d i o . N e t

J a v a 2 M ic r o E d i t i o nO t r a s h e r r a m ie n t a s

C o m p a r a t i v a s

2 A n a l i s i s d e r e c u r s o s a a c a p a r a rT a m a ñ o

T ip o d e r e c u r s o sE s t r u c t u r a d e a lm a c e n a m ie n t o

D o c u m e n t a c ió n

3 E s t u d io h e r r a m ie n t a s e le c c io n a d a

4 E s t u d io d e M o v iw a r eA c a p a r a d o r

C o n t e n e d o r d e P a t r o n e sT r a n s c o d i f i c a d o r

G e s t o r d e d e s c o n e x ió nD o c u m e n t a c ió n

5 D is e ñ o e im p le m e n t a c ió n d e l G A PO b s e r v a d o r

G e s t o r d e D e s c o n e x ió n L o c a l

S E P T O C T N O V D I C

100%

100%

100%

100%

100% Figura 5. Cronograma de actividades del período anterior.

Page 10: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

5

III. Compromisos para este período Se cumplieron al 100% las actividades de este periodo (terminar el diseño e

implementación del GAP así como tener al menos el 50% del diseño e implementación del

GAT), logrando un poco más de lo previsto. El porcentaje de avance de esta tesis que

proponemos es del 70% incluyendo redacción de tesis.

Las actividades realizadas durante este período se muestran el cronograma de la Figura 6. A continuación se describe cada actividad realizada.

Figura 6. Cronograma de actividades del período actual.

5 Diseño e implementación del GAP En este cuatrimestre se continuó con el diseño y la implementación del GAP. También se

modificaron y actualizaron los diversos módulos por lo que se tuvo que cambiar el diseño

original propuesto para esta actividad. A continuación se detalla con mayor precisión cada

una de las actividades realizadas.

Gestor de Acaparamiento Local Es el encargado de administrar los recursos de la caché y mostrárselos a los usuarios, así

como de la sincronización de los recursos de la caché entre otras actividades.

Como se mencionó esta actividad se tenia adelantada un 30% del período pasado pero en este período se concluyó al 100%. En este momento este módulo no se ha probado en su totalidad debido a la problemática de que no existen implementaciones del algoritmo

Page 11: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

6

zip en .NET Compact Framework y las herramientas que se han encontrado son demos o limitadas. Se acaba de conseguir una herramienta al parecer de libre distribución. También se revisaron protocolos e implementaciones para lograr la mejor forma de transmisión de los recursos acaparados (está por verse si se implementa algo así).

Pruebas Se han realizado pruebas de unidad de los módulos del GAP funcionando correctamente

(faltan pruebas de integración de todo sistema que se realizará el próximo cuatrimestre).

Las pruebas se detallan en el apartado de resultados.

Anexos Diseño del GAP (actualizado con respecto a las modificaciones) Diagrama de casos de uso

Figura 7. Diagrama de caso de uso del GAP.

Diagrama de clase Sólo se muestra el diagrama general del proyecto omitiendo métodos y propiedades de cada clase.

Page 12: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

7

Figura 8. Diagrama de clases del GAP.

Diagrama de secuencias

Figura 9. Diagrama de secuencia cuando el recurso no está en la caché y existe patrón de

acaparamiento.

Page 13: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

8

Figura 10. Diagrama de secuencia para el caso de uso de configuración del GAP.

Figura 11. Diagrama de secuencia para la visualización de error cuando no existe conexión y el recurso

no está en la caché.

Page 14: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

9

Figura 12. Escenario de visualización de error cuando existe conexión, el recurso no está en la caché y

no se pudo obtener recurso en línea.

Figura 13. Diagrama de secuencia para la visualización de errores cuando existe conexión, el recurso no

está en la caché, se pudo obtener en línea pero no transcodificar.

Page 15: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

10

Figura 14. Diagrama de secuencia del escenario cuando existe conexión, el recurso no está en la caché,

y existe patrón de acaparamiento.

Figura 15. Diagrama de secuencia para el escenario cuando existe conexión, el recurso no está en la

caché, y el recurso se obtiene en línea.

Page 16: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

11

Figura 16. Diagrama de secuencia que modela el escenario cuando existe conexión, el recurso no está en

la caché, y el recurso se obtiene en línea mediante transcodificación.

Figura 17. Diagrama de secuencia para el escenario donde el recurso está en la caché sin importar la

conexión.

Page 17: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

12

Figura 18. Diagrama de secuencia para el caso de uso de visualización de peticiones.

Diagrama de actividades

Figura 19. Diagrama de actividades del procesamiento de acaparamiento.

Page 18: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

13

Figura 20. Diagrama de actividades del proceso de desconexión en el GAP.

Arquitectura de la caché

Figura 21. Diagrama de acceso a un recurso de la caché.

Page 19: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

14

Modificación de archivos XML de configuración, contenedor de patrones y patrones:

Tabla 1. Estructura del archivo contenedor de patrones. <?xml version="1.0" encoding="UTF-8" ?>

<cache>

<peticion sitio="http://www.cenidet.edu.mx/" patron="cenidet.xml" fecha="10/10/2005"

formato=”PDF”/>

<peticion sitio="http://www.itcolima.edu.mx/" patron="itmorelia.xml"

fecha="10/10/2005" formato=”WML”/>

</cache>

Tabla 2. Archivo patrón del sitio Web http://www.cenidet.edu.mx/

<?xml version="1.0" encoding="UTF-8" ?>

<recursos>

<acaparado nombre="/index.html" ubicacion="index.html" />

<acaparado nombre="/css/general.css" ubicacion="general.css" />

</recursos>

Tabla 3. Archivo de configuración del GAP.

<?xml version="1.0" encoding="UTF-8"?>

<GASWT>

<GAT ip="192.168.190.33" puerto="2700" transformador="0"

ipMA="192.168.190.33" puertoMA="1800" formato=“WML”/>

<GAP ip="127.0.0.1" puerto="10800" cache="\" indice="patrones.xml"

conexion="1" />

<ALMACENAMIENTO espacio="64248" longitud="4096" maximo="101"

tipos="*.jpg|*.gif|*.css|*.pdf" />

</GASWT>

6. Adaptación del GAP Esta actividad salió de manera directa al desarrollar nuestro prototipo en un ambiente

multiplataforma por lo que nos evitamos esta tarea que si bien no es de alta complejidad si

era consumidora de tiempo. La mayoría de las pruebas se han realizado directamente

sobre los dispositivos, en otros casos con emuladores o probado directamente sobre otros

equipos como computadoras de escritorio y teléfonos inteligentes. Por simplicidad hemos

denominado WinGAP a la versión que se ejecuta sobre Windows de escritorio y SmartGAP

a la versión que se ejecuta en Windows Mobile.

Page 20: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

15

ARM Es el microprocesador más utilizado en esta plataforma. Desde la versión 2002, para

Pocket PC y Smartphone es el único microprocesador soportado; sin embargo, se sigue

soportando en todas las versiones de Windows CE. Se ha probado el funcionamiento de

esta clase de microprocesador en una Compaq iPAQ h3630 (PPC 2000), HP Jornada 5450

(PPC 2002) y HP iPAQ rx3115 (PPC 2003).

MIPS Este microprocesador se sigue utilizando en dispositivos móviles heterogéneos como en

algunas consolas de videojuegos. En teoría se garantiza que el programa realizado

funciona adecuadamente en esta plataforma debido a que se cuenta con código gestionado

en .NET Compact Framework. Se ha probado el desarrollo en este caso con emuladores.

SH3 Esta otra familia de microprocesadores. Al igual que en el microprocesador anterior, no se

cuenta con un dispositivo que tenga este microprocesador para realizar la prueba. Pero se

ha probado con éxito en el emulador de Pocket PC.

7. Diseño e implantación del GAT Esta es una de las actividades principales de este período. En un principio (actividad 4

‘Estudio de Moviware’) se había determinado la forma en que se pretendía integrar dichos

servicios. En un principio se mencionaron tres alternativas:

1. Dejar los módulos como tal y realizar un middleware que gestionará la integración.

2. Ver la funcionalidad de cada módulo y hacer una adaptación en un solo programa.

3. Rediseñar nuevamente todo.

Se había determinado que la mejor opción era la segunda ya que permitía mejorar el

proceso pero también era complicado hacerlo no tanto como la tercera pero más que la

primera.

La alternativa que se eligió para integrar dichos módulos consistió básicamente en

realizar pequeñas modificaciones (en algunos casos de suma consideración) para que el

sistema funcionase. Se eligió este esquema ya que permite que las aplicaciones anteriores

puedan ejecutarse, por que se observó que el flujo de trabajo sería el mismo y no se

ahorraría nada en integrarlo completamente. Además el tiempo de implementación se vería

reducido en cierto grado.

A continuación se muestran las actividades realizadas, su porcentaje de avance y su diseño de manera general.

Page 21: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

16

Analizador HTTP Aquí básicamente las modificaciones consistieron en agregar un módulo tanto en el GAT

MT como GAT MA para que interprete los nuevos encabezados generados en el GAP como

es el caso del encabezado X-Transform que como se verá mas adelante sirve para indicar

que se quiere transcodificar el contenido a cierto formato.

También se detecta si el usuario quiere realizar transcodificación o no, para ello en el GAP si el cliente no es Pocket PC se agrega al encabezado User-Agent: el valor de Windows CE GAP, ya que el GAT MT detecta la presencia de está línea en el encabezado y realiza transcodificación; en el caso contrario, en el que un dispositivo Pocket PC no quiera obtener recursos transcodificados se cambia el valor de Windows CE por cualquier otro, en este caso por ‘Servidor GAP’.

Esta actividad está terminada al 100%. Tanto el GAT MT como MA se agregó al archivo de configuración el parámetro Formato, que indica el tipo de formato que se aplicará de manera predeterminada a la transcodificación (anteriormente sólo se utilizaba HTML).

Integración del Transcodificador Para realizar la Transcodificación se revisaron tanto las entradas como las salidas del

proceso. Durante la fase de modificación de este módulo se cambió la manera de generar

diferentes versiones (formatos) de la página Web. Este es un alcance que no está dentro de

este trabajo de tesis pero se decidió hacerlo por lo que nuestra herramienta es posible

convertir un recurso Web en HTML a WML, XHTML-MP, HTML reformateado y PDF.

El proceso para realizar la transformación es el siguiente. El GAP se encarga de interceptar todas las peticiones a recursos HTTP, generando un nuevo encabezado denominado X-Transform, tal y como se muestra a continuación.

Tabla 4. Encabezado de una petición HTTP después de haber pasado por el GAP. GET http://www.cenidet.edu.mx/ HTTP/1.0 Accept: */* UA-OS: Windows CE (Pocket PC) –Version 3.0

UA-Color: Color16

UA-Pixeles: 240x320

UA-CPU: ARM SA1110

UA-Voice: False

UA-Language: Mozilla/2.0

Accept-Encoding: gzip, deflate User-Agent: Mozilla/2.0 (Compatible; MSIE 3.02; Windows CE; PPC; 240x320) Host: www.itmorelia.edu.mx Proxy-Connection: Keep-Alive X-Transform: XHTML-MP

Una vez identificado el formato se procede con la transformación del recurso como a continuación se muestra.

Page 22: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

17

El primer paso consiste en determinar el tipo de recurso, si el recurso es diferente de HTML el transcodificador funciona como cualquier otro Web Proxy. Si el recurso es HTML se procede a su descarga, es necesario tener el documento completo ya que de lo contrario no es posible operar con él.

Tabla 5. Documento HTML original. <HTML> <Head><title>Prueba del transcodificador</title></head> <Body> <center> <h1>Prueba del transcodificador</h1> </center> <p>Página de prueba <br> Diseñado por < a href=”malito:[email protected]”>Juan Carlos Olivares Rojas </a><hr> Centro Nacional de Investigación y Desarrollo Tecnológico <i>(cenidet)</i> <a ref.=”http://www.cenidet.edu.mx”> <img src=”cenidet.jpg” alt=”cenidet”></a> <table> <tr> <td>Area:</td> <td>Sistemas Distribuidos</td> <td><a ref.=”http://www.sd-cenidet.com.mx”> http://www.sd-cenidet.com.mx </a></td>

</tr> <tr> <td> Especialización: </td> <td> Cómputo móvil </tD> <td> <a ref.=”http://www.cenidet.edu.mx/~wm-serna/”>

http://www.cenidet.edu.mx/~wm-serna </a></TD> </tr> </table> </body> </html> Una vez descargado el recurso, se procede a convertir el documento de HTML a XHTML, el cual es un documento con las mismas características que el documento HTML pero con la salvedad de que está bien formado y es válido (dado que es un documento basado en XML). Esta transformación se realiza con JTidy que es un convertidor de XHTML para Java. Los errores y alertas generados se guardan en el archivo erroresXHTML.txt

Page 23: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

18

Tabla 6. Documento transformado en XHTML.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title>Prueba del transcodificador</title></head> <body> <center> <h1>Prueba del transcodificador</h1> </center> <p>Página de prueba <br /> Diseñado por < a href.=”malito:[email protected]”>Juan Carlos Olivares Rojas </a><hr /> Centro Nacional de Investigación y Desarrollo Tecnológico <i>(cenidet)</i> <a ref.= <img src=”cenidet.jpg” alt=”cenidet”> </img> </P> <table> <tr> <td>Area:</td> <td>Sistemas Distribuidos</td> <td><a href.=”http://www.sd-cenidet.com.mx”> http://www.sd-cenidet.com.mx

</a></td> </tr> <tr> <td> Especialización: </td> <td> Cómputo móvil </td> <td> <a ref.=”http://www.cenidet.edu.mx/~wm-serna/”>

http://www.cenidet.edu.mx/~wm-serna </a></td> </tr> </table> </body> </html>

Una vez obtenido el documento XHTML (si es que no ha ocurrido un error grave), el modelo se convierte a XML añadiendo los encabezados respectivos para posteriormente subirlo a memoria y procesarlo.

Tabla 7. Documento en XML.

<?xml version="1.0" encoding="iso-8859-1"?> <html> <head><title>Prueba del transcodificador</title></head> <body> <center> <h1>Prueba del transcodificador</h1> </center> <p>Página de prueba <br /> Diseñado por < a href.=”malito:[email protected]”>Juan Carlos Olivares Rojas </a><hr /> Centro Nacional de Investigación y Desarrollo Tecnológico <i>(cenidet)</i>

Page 24: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

19

<a ref.= <img src=”cenidet.jpg” alt=”cenidet”> </img> </p> <table> <tr> <td>Area:</td> <td>Sistemas Distribuidos</td> <td><a href.=”http://www.sd-cenidet.com.mx”> http://www.sd-cenidet.com.mx

</a></td> </tr> <tr> <td> Especialización: </td> <td> Cómputo móvil </td> <td> <a href.=”http://www.cenidet.edu.mx/~wm-serna/”>

http://www.cenidet.edu.mx/~wm-serna </a></td> </tr> </table> </body> </html>

Estando el documento en memoria es posible aplicarle un reformateo al documento extrayendo toda la información relevante del documento como es el título, el texto, las imágenes y los enlaces con base en esta información primeramente se construyen un archivo intermedio reflejando el nuevo formato y una plantilla de transformación. Para realizar esta transformación se genera un archivo intermedio eliminando todos los elementos que causan ruido en el documento y que no se pueden mostrar de manera adecuada en el dispositivo, tal es el caso de tablas, formularios, marcos, etc. A este documento intermedio será al que se le aplique el proceso de transformación a otros formatos si es que no se presentó ningún error a la hora de realizar la transformación.

Tabla 8. Archivo intermedio generado.

<html> <head><title>Prueba del transcodificador</title></head> <body> <h1>Prueba del transcodificador</h1> <p>Página de prueba <br /> Diseñado por <hr /> Centro Nacional de Investigación y Desarrollo Tecnológico <i>(cenidet)</i> <a ref.= <img src=”cenidet.jpg” alt=”cenidet”> </img> Area Sistemas Distribuidos Especialización: Cómputo móvil <p>Enlaces</p> <p><a href.=”http://www.cenidet.edu.mx/~wm-serna/”>

http://www.cenidet.edu.mx/~wm-serna </a></p> <p><a href.=”http://www.sd-cenidet.com.mx”> http://www.sd-cenidet.com.mx </a></p>

Page 25: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

20

<p>< a href.=”malito:[email protected]”>Juan Carlos Olivares Rojas </a></p> </body> </html>

Esta plantilla depende del formato seleccionado en X-Transform la cual se basa en

el documento en cuestión (WML, XHTML, PDF) para generar el nuevo documento. La transformación se basa en dos tecnologías de XSL: XSLT y XSL-FO. La primera para transformar documentos basados en XML a otros documentos basados en XML (WML, XHTML, o cualquier otro lenguaje de marcado como podría ser RDF, OWL, MathML, UIML, VoiceML, etc.). La segunda tecnología se enfoca a documentos no basados en XML como es el caso de PDF, RTF, PS, entre otros.

Tabla 9. Extracto de la plantilla generada para PDF

<?xml version='1.0' encoding='iso-8859-1'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="xml" indent="yes"/> <xsl:template match="html"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set>…. <fo:block font-family="Helvetica" font-size="18pt" text-align="end" space-before="2cm"> GAT MT X-transform Convertidor de recursos Web a PDF </fo:block> <fo:block font-weight="bold" color='blue'> Prueba del transcodificador</fo:block> <fo:block font-size="12pt"> <xsl:value-of select="body" /><xsl:text> </xsl:text> <fo:block font-size="12pt" color='red'> * Imágenes *</fo:block> <fo:block><fo:external-graphic src='cenidet.jpg' height='1.4cm' width='2.0cm' scaling='uniform' /></fo:block> <fo:block font-size="12pt" color='red'> * Enlaces * <fo:basic-link external-destination='http://www.cenidet.edu.mx/~wm-serna' color='blue'>http://www.cenidet.edu.mx/~wm-serna/ </fo:basic-link> … </xsl:template> </xsl:stylesheet>

Page 26: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

21

Tabla 10. Documento generado en WML. <wml> <card title=”Prueba del transcodificador”> <p><big>Prueba del transcodificador</big></p> <p>Página de prueba Diseñado por Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet) Area Sistemas Distribuidos Especialización: Cómputo móvil </p>

<p>* Imágenes *</p> <p> <a ref.= <img src=”cenidet.jpg” alt=”cenidet”> </img> </p> <p>* Enlaces * </p> <p><a href.=”http://www.cenidet.edu.mx/~wm-serna/”>

http://www.cenidet.edu.mx/~wm-serna </a></p> <p><a href.=”http://www.sd-cenidet.com.mx”> http://www.sd-cenidet.com.mx </a></p> <p>< a href.=”malito:[email protected]”>Juan Carlos Olivares Rojas

</a></p> </card> </wml>

Una vez realizada la transformación se devuelve el recurso en caso de éxito o se muestra el mensaje de error. Es importante en la respuesta construir un encabezado de respuesta con el tipo MIME respectivo para que el usuario

Tabla 11. Encabezado de respuesta generado. HTTP/1.0 200 Ok Server: cenidet GAP Content-Type: text/wml Content-Length: 100

El proceso de transformación se visualiza en los siguientes diagramas de actividades

(Figura 22, Figura 23).

Page 27: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

22

Figura 22. Diagrama de actividades del proceso de transcodificación.

Esquematizando el proceso de transformación podría verse como una implementación del patrón de diseño Modelo-Mista-Controlador (MVC) el cual grosso modo consiste en separar los datos de un programa o lógica del negocio (modelo), la forma de interacción del sistema con el usuario y con otras partes del mismo sistema; es decir, la entrada o el proceso (controlador) y la forma en como se muestran los datos (vista). En nuestro caso el modelo corresponde al recurso original (html), el controlador representa el GAT MT (ya que indica como debe ser procesado el modelo), y la vista son los recurso transcodificados en los diferentes formatos tal y como se muestra en la Figura 24.

Figura 23. Proceso de transcodificación del documento.

Page 28: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

23

Figura 24. Modelo-Vista-Controlador en el GAT MT.

Debido a la gran variedad de formatos en los cuales se puede convertir el

documento es necesario llevar un control efectivo de los distintos tipos de caché, para lo cual se modificó el mecanismo de control de la caché para mantener el mismo sitio Web en diferentes formatos.

Esta actividad está terminada al 100% pero es susceptible a mejoras, el problema

radica en que el tiempo es corto para terminarlas pero se verá que cosas no son tan

consumidoras de tiempo y que pueden implementarse.

En las Figura 25 y Figura 26, se muestran los diagramas de clase donde en los recuadros se marca todos aquellos métodos y propiedades que se agregaron y/o modificaron del módulo transcodificador, las pequeñas modificaciones no se ven reflejadas.

Figura 25. GAT MT funcionamiento de proxy.

Page 29: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

24

Figura 26. GAT MT mecanismo transcodificador.

Integración del Acaparador Para realizar esta actividad nuevamente se volvieron a revisar entradas y salidas del

proceso MA. Se agregó un campo para determinar el tipo de recurso que debe enviarse al MT si es que se requiere realizar transcodificación. También Se descubrió que el MT revisa el encabezado User-Agent de una petición HTTP por lo que si cambiamos el encabezado de la petición por uno distinto a Windows CE, PalmPilot, Epoc no se realizará transformación (esto es útil si se desea tener una cache sin transcodificar) con esto logramos que el MA pueda pedir los recursos al MT y así tener caché normal y cachés transcodificadas. También se arregló el sistema de control de recursos para que pueda trabajar con varios sitios (la versión que se modificó solo podía acaparar)

Esta actividad está finalizada en un 100% (quizás menos) El mayor reto consiste en

interpretar los patrones disponibles dado que no se cuenta con muchas bitácoras, el

proceso de minado es demasiado lento y costoso computacionalmente hablando por lo que

se deben generar patrones sintéticos para probar la herramientas (o archivo zip ya

Page 30: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

25

replicados). Pero esta parte tiene que ver más con las pruebas que con el proceso de

integración.

Una mejora podría ser que el usuario directamente en el servidor escogiera el recurso acaparado (seleccionando todo aquello que el quisiera replicar), se tendría una módulo que pidiera recursos y los actualizará en el sistema. (La responsabilidad caería en el manejador del sitio o la herramienta, similar a como realizan la herramienta)

En la Figura 27, se muestran los métodos y propiedades que se agregaron y/o modificaron del módulo Acaparador en el lado servidor de Moviware. Las pequeñas modificaciones no se muestran (ya que de lo contrario habría que remarcar prácticamente todo el diagrama).

Figura 27. Diagrama de clases del GAT MA.

Sincronizador de Caché Esta actividad tiene que ver especialmente con la integración del Acaparador pero se

consideró aparte por la importancia que ésta tiene. En ese sentido, ya se reciben y mandan

Page 31: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

26

las caché al cliente móvil, solo falta probar la sincronización de la caché en el dispositivo

local. Esta actividad esta terminada al 100% faltando únicamente su sincronización.

Por otra parte, tanto en el GAP como en el GAT MT y MA se manejan diferentes las caches pero en esencia se tienen los mismos tipos: caché sin transcodificar, HTML reformateado, WML, XHTML-MP y PDF. El proceso de sincronización de la caché en el lado cliente (GAP) se muestra en la Figura 28, mientras que el proceso de sincronización de la caché en el lado servidor (GAT MT) se muestra en la Figura 29.

Figura 28. Diagrama de actividades del proceso de sincronización de la caché en el GAP.

Figura 29. Sincronización de la caché en el GAT MA.

Page 32: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

27

Otras actividades realizadas en este período Durante el presente período se realizaron muchas actividades que no estaban

contempladas en el plan de actividades que originalmente se diseño y que a continuación

se muestra:

1. Se realizaron pruebas sobre la plataforma Smartphone con Windows Mobile para determinar si el prototipo se puede ejecutar en esta clase de dispositivos. Se vio que es posible solo quitando algunas partes de la interfaz que no están definidas en la shell de Smartphone (Abrir archivo de cuadro de dialogo).

2. Se trabajó con la nueva versión de .NET Compact Framework 2.0, observando que tiene implementado nuevos componentes y métodos no disponibles en la versión anterior, desgraciadamente sólo se ejecuta en equipos recientes Pocket PC 2003 y superior

3. Se probó el desarrollo en el emulador del nuevo Windows Mobile 5 para Pocket PC así como en el emulador de Windows CE 5, se comprobó que se ejecuta tanto con el .NET CF 1.0 y 2.0

4. Se arregló el problema principal de la obtención en línea del documento, que nos traía retrasados por varias semanas.

5. Se creó un miniservidor Web de modo gráfico y texto, observando que es posible diseñar nueva clase de servicios de red en esta plataforma.

6. Se rediseñó la interfaz del GAP ahora se ejecuta en modo gráfico en lugar de modo consola. El diseño gráfico sigue los estándares recomendados para las nuevas plataformas garantizando su ejecución sin ningún problema en el futuro.

7. Se creó un modulo gráfico de configuración del sistema (no estaba pensado, pero se extendió el uso de la interfaz gráfica).

8. Se creó una bitácora en siguiendo el formato nativo de squid lo cual lo hace compatible con otros sistemas de caché.

9. Se creó una bitácora en línea del proceso de investigación http://mail.cenidet.edu.mx/~jcolivares04c/ (con las actualizaciones semanales respectivas).

10. Se actualizó el sistema de la caché para soportar nuevos sitios transcodificados. 11. Se crearon dos mini portales uno en formato WML y otro en formato XHTML-MP

para mostrar la complejidad que implica diseñar contenido Web en distintas plataformas.

12. Revisión de nueva literatura (tecnologías pull & push, HTTPMU, HTTPU, GENA, Arquitectura MVC, J2ME Polish, Model 2 Java), Así como de tecnologías XML: XSL, XSLT y XSL-FO.

13. Pruebas del GAP en otros navegadores para Pocket PC.

IV. Compromisos siguiente período Nos comprometemos a terminar el prototipo al 100%, incluyendo pruebas y obtención de

resultados. Dejamos la redacción de tesis para después (aunque no descartamos que en ese

mismo período se esté o se termine de redactar el documento de tesis).

Page 33: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

28

7. Diseño e implementación del GAT Para esta actividad se debe terminar todos los módulos de este prototipo, así como

arreglar los pequeños detalles de los módulos codificados este período.

Gestor de desconexión Esta sección se omitió como tal desde el primer avance, solo se revisará el adecuado

funcionamiento entre el GAP y GAT cuando se presenten eventos de desconexión.

Pruebas En esta sección se realizaran las pruebas sobre los módulos pertenecientes al GAP

faltando realizar las pruebas completas.

8. Pruebas Aquí se terminarán todas las actividades del prototipo realizando pruebas, depurando y

obteniendo resultados de este trabajo.

Integración del GAP y GAT Aquí se probarán los dos proxys tanto del lado cliente como del servidor. El plan de

pruebas consistirá en dos partes.

La primera consistirá en pruebas de funcionalidad con el objetivo de probar que el sistema funciona por partes y en su totalidad; mientas que por otra parte, se realizarán pruebas de desempeño con el objetivo de ver resultados en cuanto a tiempo de proceso, consumo de recursos, entre otras métricas.

Por otra parte, en el segundote tipo de pruebas se espera hacer comparaciones entre el GAP, WinGAP y SmartGAP para medir que tan efectivos es el prototipo en diferentes conceptos.

Depuración En esta parte se corregirán todos los problemas detectados en la fase de prueba.

Page 34: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

29

9. Redacción de tesis En esta actividad se termina de ordenar toda la información técnica de este trabajo de tesis.

Y con esto se termina este trabajo de tesis, faltando simplemente la defensa de la tesis.

Pruebas Al ser la última actividad las pruebas al prototipo este es el primer capítulo de la tesis que

se redacta.

Capítulos Aquí se terminan de redactar los demás capítulos de la tesis: Introducción, Marco Teórico,

Análisis y diseño del sistema, y Conclusiones.

Revisiones Este proceso consiste en realizar las correcciones al documento de tesis indicadas por los

revisores.

V. Resultados y logros importantes

Publicaciones

Artículos En este período se presentaron dos ponencias en congresos que a continuación se indican: J. G. González S., A. Montes R., V. J. Sosa S. y J. C. Olivares R., “Arquitectura de una

caché para almacenar sitios Web en dispositivos móviles Pocket PC”, V Jornadas Iberoamericanas de Ingeniería de Software e Ingeniería del Conocimiento, JIISIC’06 Puebla, Puebla, México, febrero de 2006, ISBN: 970-94770-0-5, pp. 263-270. J. C. Olivares R., J. G. González S., A. Montes R. y V. J. Sosa S., “Control de

desconexiones en la visualización de páginas Web con dispositivos móviles Pocket PC”, XVI Congreso Interuniversitario de Electrónica, Computación y Eléctrica, CIECE’06 Ciudad Obregón, Sonora, México, Abril de 2006.

Page 35: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

30

Aceptados: J. C. Olivares R., J. G. González S., A. Montes R. and V. J. Sosa S., “GAP: A Tool to

Solve the Problem of the Visualization of Web Contents in Pocket PC Devices”, IEEE Looking Forward Computer Society Electronic Magazine, (all papers was accepted). Por lo que se cuenta ya con 5 publicaciones desprendidas de este trabajo de investigación

(CICC’05, CIINDET’05, SICI’05 y estas dos últimas publicaciones). Se están preparando

información para artículos en inglés esperando próximamente meter a revisión un artículo

en revista o congreso indexado en dicho idioma.

Logros Aceptación por parte de la IANA (Internet Assigned Number Authority) del puerto 10800

del servicio GAP lo que le da validez a este trabajo de tesis, ya que es un reconocimiento a

aplicaciones importantes de servicios en Internet.

La IANA es el organismo de regular los puertos que están disponibles en Internet (65535 puertos) siendo los primeros 1024 (0-1023) reservados para aplicaciones ampliamente utilizadas en Internet, como es el caso de los protocolos HTTP (80), SMTP (25), SSH (22), etc. En la dirección: http://www.iana.org/assignments/port-numbers se muestra la relación de dichos puertos (última actualización 4 de abril).

Tabla 12. Selección del puerto 10800 del GAP por parte de la IANA. # 10289-10799 Unassigned gap 10800/tcp Gestor de Acaparamiento para Pocket PCs gap 10800/udp Gestor de Acaparamiento para Pocket PCs # Juan Carlos Olivares Rojas <[email protected]> March 2006 # 10801-10804 Unassigned

Casos de prueba

Visualización de recursos Web en línea. En este caso de prueba se muestra que es posible acceder a cualquier recurso en la Web de

manera normal con el GAP.

Page 36: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

31

Figura 30. Caso de prueba número 1.

Visualización de recursos Web en desconexión (acaparados) En este caso se muestra que es posible acceder a recursos acaparados cuando no existe

conexión.

Figura 31. Caso de prueba número 2.

Page 37: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

32

Visualización de recursos en distintos formatos En este caso de prueba se muestra que es posible visualizar el mismo recurso Web

transcodificados en los siguientes formatos: HTML reformateado (versión anterior), WML,

XHTML-MP y PDF.

Figura 32. Caso de prueba número 3.

Figura 33. Transcodificación de contenidos Web a PDF.

Page 38: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

33

Figura 34. Transcodificación de recursos Web a WML.

Figura 35. Transcodificación de contenidos Web a XHTML-MP.

Visualización del estado de las peticiones Este caso de prueba se muestra de manera gráfica el estado de las peticiones (ver Figura 23) y, se muestra el esquema de la bitácora propuesta.

Page 39: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

34

Figura 36. Visualización del estado de las peticiones en línea.

El formato de la bitácora está en formato nativo de Squid lo cual lo hace compatible

para futuras mejoras como servidores proxys caché cooperativas con dispositivos móviles Pocket PC. A continuación se muestra un ejemplo sencillo de bitácora:

Tabla 13. Muestra de la bitácora del GAP. 1143746322.266 2063 192.168.190.33 TCP_MISS/0 -1 GET http://antares.itmorelia.edu.mx/~kaos - DIRECT/192.168.190.33 1143746470.906 1547 192.168.190.33 TCP_MISS/0 -1 GET http://antares.itmorelia.edu.mx/~kaos - DIRECT/192.168.190.33 1143746471.844 937 192.168.190.33 TCP_MISS/200 -1 GET http://antares.itmorelia.edu.mx/inicio.htm - DIRECT/192.168.190.33 application/pdf; charset=iso-8859-1 1143746471.938 1031 192.168.190.33 TCP_MISS/200 -1 GET http://antares.itmorelia.edu.mx/ini_fr02.htm - DIRECT/192.168.190.33 application/pdf; charset=iso-8859-1 1143746472.016 1156 192.168.190.33 TCP_MISS/200 -1 GET http://antares.itmorelia.edu.mx/ini_fr01.htm - DIRECT/192.168.190.33 application/pdf; charset=iso-8859-1 1143746476.406 63594 192.168.190.33 TCP_NEGATIVE_HIT/200 -1 GET http://antares.itmorelia.edu.mx/~kaos - NONE/-- 1143746478.188 391 192.168.190.33 TCP_MISS/0 -1 GET http://antares.itmorelia.edu.mx/~kaos - DIRECT/192.168.190.33

Visualización de la configuración del sistema En este caso de prueba se muestra que es posible configurar el sistema de manera gráfica

permitiendo a los usuarios una mayor facilidad de administrar el sistema.

Page 40: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

35

Figura 37. Opciones de configuración del GAP

Pruebas multiplataforma En este caso de pruebas se muestra que el prototipo que se está desarrollando es capaz de

ejecutarse en distintas plataformas: Windows de escritorio (WinGAP) y Windows Mobile

for Smartphone (SmartGAP) con ninguna y pequeñas mejoras respectivamente.

Figura 38. Ejecución del GAP en Windows: "WinGAP".

Page 41: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

36

Figura 39. Ejecución del GAP en un Smartphone con Windows Mobile: "SmartGAP".

VI. Conclusiones En el presente reporte técnico se mostraron los avances y logros más importantes llevados

acabo durante el presente periodo (Enero-Abril de 2006) de la tesis titulada Gestor de

Acaparamiento de Sitios Web Transcodificados para plataforma Pocket PC. Se estima el

avance en el desarrollo de esta tesis en un 70% incluyendo redacción de tesis.

VI. Referencias y bibliografía [Burbeck92] Steve Burbeck, “Applications Programming in Smalltalk-80: How to use Model-View-

Controller (MVC)”, 1987 y 1992. [Dabas05] Ahmad Dabas, “Proxy Server for Handhelds”, Tesis de Maestría, Universidad Técnica Checa en

Praga, Facultad de Ingeniería Eléctrica, Mayo de 2005. [Eisenberg02] David Eisenberg, “Using XML”, [Online] http://www.alistapart.com/stories/usingxml/ , julio

de 2002, Consultado: marzo de 2006. [Vázquez03] María del Rosario Vázquez Aragón, “Generador Automático de Informes Web en Base al

Esquema de Base de Datos Utilizando Tecnologías XML”, tesis de maestría, cenidet, noviembre de 2003, pp. 112.

[González02] Roble Leonel González Urbieta, “Servidor XML para aplicaciones de Web”, tesis de maestría, cenidet, Cuernavaca, Morelos, México, agosto de 2002, pp. 128.

[Gutiérrez01] Abraham Gutiérrez, Raúl Martínez, “XML a través de ejemplos”, Alfaomega Rama, Madrid, España, 2001, ISBN: 970-15-0714-2.

[Akif02] Mohammad Akif, Steven Bordead, Andrei Cioroianu, James Hart, Eric Jung, Dave Writz, “Java y

XML Referencia para programadores”, Anaya Multimedia, Madrid, España, 2002, ISBN: 84-415-1364-5

[Morrison02] Michael Morisson et al., “XML al descubierto”, Prentice Hall, Madrid, España, 2002, ISBN: 84-205-2964-.

[Chanchaem03] Thong Chanchaem, “A Survey on Internet Content Transcoding for Universal Access”, Department of Computer Science, Kent State University, May 2003.

[Alam06] Hassan Alam, Fuad Rahman1, “Web Document Manipulation for Small Screen Devices: A Review”, sin fecha ni datos de aparición, visto en abril de 2006.

[North99] Simon North, “Sams Teach Yourself XML in 21 Days”, Macmillan Computer Publishing, ISBN: 1575213966, 04/13/99, libro electrónico.

[Borland03] Borland, “Guía del desarrollador de XML”, manuales de Borland JBuilder 8.0, 2003. [González02a] Gabriel González, Rodolfo Pazos, F. Menchaca, David Valenzuela, y Fernando Alarcón,

“Plataforma Middleware Reflexiva para la Implementación de Aplicaciones de Cómputo Móvil

Page 42: CENTRO NACIONAL DE INVESTIGACIÓN Y ...dsc.itmorelia.edu.mx/~jcolivares/documents/report2.pdfpublicaciones de artículos, los casos de prueba (visualización de recursos Web en línea,

Segundo reporte de avance cuatrimestral “Gestor de acaparamiento de sitios Web

transcodificados para plataforma Pocket PC”

37

(MoviWare)”, memorias del 9 Congreso Internacional de Investigación en Ciencias Computacionales CIICC’02, Puebla, Puebla, México, 2002.

[Schaefer02] Robbie Schaefer, Andreas Dangberg,Wolfgang Mueller, “Fuzzy Rules for HTML Transcoding”, Proceedings of the 35th Hawaii International Conference on System Sciences , ISBN: 0-7695-1435-9/02, 2002, IEEE.

[Bouillon06] Laurent Bouillon and Jean Vanderdonckt, “Retargeting Web Pages to other Computing

Platforms with VAQUITA”, Université catholique de Louvain, Institut d’Administration et de Gestion, Louvain-la-Neuve, Belgium (sin más datos de referencia), visto en abril de 2006.

[Oracle06] Oracle, “Oracle 9iAS Wireless Server Transcoding”, visto en abril de 2006. [Bangalore06] Vish Bangalore, “HTML to WML conversion”, (sin demás datos de referencia), visto en abril

de 2006. [Dugas01] Robert Dugas, “WWW Unplugged: An HTML to WML Transcoding Proxy”, 2001 (no existen más

referencias), visto en abril de 2006. [Maheshwari06] Anuj Maheshwari, Aashish Sharma, Krithi Ramamritham, “TranSquid : Transcoding and

Caching Proxy for Heterogenous E-Commerce Environments”, si más datos de referencia, visto abril de 2006.

[Laako05] Timo Laakko, Tapio Hiltunen, “Adapting Web Content to Mobile User Agents”, revista IEEE Internet Computing, marzo-abril 2005, IEEE Computer Society, ISBN: 1089-7801/05/

[Valenzuela02] David R. Valenzuela Molina, “Mecanismo para Predicción de Acaparamiento de Datos en

Sistemas Cliente/Servidor Móviles”, tesis de maestría, cenidet, agosto de 2002. [Uriarte04] Claudia Selene Uriarte Cabada. “Transformador de Contenidos Web para Asistentes Personales

Digitales”, tesis de maestría, cenidet, julio de 2004. [González05] J. Gabriel González Serna. “Esquema Adaptativo para la Gestión de Movilidad en Sistemas

Cliente/Servidor a través de Internet”. Documento para la revisión pre-doctoral. CIC-IPN, 2005. [Alarcón02] Alarcón Gálvez Fernando, “Mecanismo para Gestión de Conexión en Sistemas Cliente/Servidor

Móviles”, tesis de maestría, cenidet, agosto de 2002. [González03] González Serna Juan Gabriel. “Plataforma middleware reflexiva para aplicaciones de cómputo

móvil en Internet (Movirware)”, Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET), de septiembre de 2001 a agosto de 2003, financiamiento COSNET: 570.01-P.

[Verduzco03] Verduzco Reyes Gustavo, “Gestor de Acaparamiento de Patrones de Sitios Web en Clientes

Móviles”, tesis de maestría, cenidet, agosto de 2003. [Hernández05] Hernández Méndez Gabriel. “Generador de patrones de navegación de usuarios aplicando

Web log mining”, tesis de maestría en desarrollo, cenidet, septiembre de 2005.