Adaptación de JMeter para la minería de datos de estructuras de páginas web.

25
Adaptación de JMeter para la minería de datos de estructuras de páginas web. Alumno Agustín Sabater Piñeiro Director Carlos Guerrero Tomé ESCUELA POLITÉCNICA SUPERIOR UNIVERSITAT DE LES ILLES BALEARS 14-Sep-12

description

Adaptación de JMeter para la minería de datos de estructuras de páginas web. Director: Carlos Guerrero Tomé Alumno: Agustín Sabater Piñeiro ESCUELA POLITÉCNICA SUPERIOR UNIVERSITAT DE LES ILLES BALEARS ! 14-Sep-12!

Transcript of Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Page 1: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Adaptación de JMeter para la minería de datos de estructuras de páginas

web.

AlumnoAgustín Sabater

Piñeiro

DirectorCarlos Guerrero

Tomé

ESCUELA POLITÉCNICA SUPERIOR UNIVERSITAT DE LES ILLES BALEARS 14-Sep-12

Page 2: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Motivación

Carlos Guerrero necesitaba una herramienta para crear modelos de los fragmentos de contenidos que forman una página web para temas de su tesis.

Page 3: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Estructura

• Introducción

• Modelo de representación de fragmentos de una página web

• Detalles técnicos relevantes del proyecto

• Demostración

• Conclusiones

• Líneas de futuro

Page 4: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Introducción

Contexto del proyecto

Construir una herramienta que solucione, de manera efectiva, la necesidad de Carlos Guerrero antes descrita.

Problemática que se resuelve

Herramienta capaz de generar un Grafo acíclico dirigido que contenga información sobre los fragmentos y sus interrelaciones.

Page 5: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Introducción

Objetivos

Crear un sistema que permita observar como cambia el contenido de una serie de páginas web.

Se pretende poder comparar tanto entre muestras temporales, como entre muestras de diferentes direcciones.

Debe poder accederse a URLS públicas y que requieran autenticación.

Del código de toda muestra debe buscarse fragmentos que encajen con una serie de consultas indicadas por el usuario.

El sistema debe ser ampliable con futuros desarrollos.

Page 6: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Introducción

Tareas a realizar

•Estudio de las soluciones existentes

•Desarrollo de herramienta de descarga

•Desarrollo de herramienta de análisis de los fragmentos

•Desarrollo de herramienta de relación entre fragmentos

•Desarrollo de herramienta de cálculo de similitud entre fragmentos

Page 7: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Modelo de representación de fragmentos

• La mejor manera de modelar la información es un grafo.

• Usamos un nodo para describir los fragmentos hallados en cada muestra, y otros nodos para describir las relaciones entre fragmentos.

• Tanto los nodos de descripición de fragmentos, como los de relaciones entre nodos, se guardan en ficheros XML.

Page 8: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Modelo de representación de fragmentos

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

<graph edgedefault="directed" id="0"><node id="-1043487486">

<data key="size">2475</data> <data key="source.code“><![CDATA[<div class=" thing id-t3_xu3yr link promoted promotedlink " onclick="click_thing(this)" data-fullname="t3_xu3yr" data-ups="118" data-downs="370">

…]]></data>

<data key="url">www.reddit.com</data>

<data key="time">20120821.18.59.02</data>

</node>…

</graph></graphml>

Características Fragmento Concordante

Fichero XML de fragmentos encontrados por muestra

Page 9: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Modelo de representación de fragmentos

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

<graph edgedefault="directed" id="4" /><key attr.name="staring.tag" attr.type="string »

for="node" id="etiqueta" /><edge id="0" source="-1774026885"

target="1894481576" url="www.reddit.com"when="20120820.17.59.10" />

…<edge id="16" source="-1139600470"

target="1894481576" url="www.reddit.com"

when="20120820.17.59.10" /><edge LevenshteinDistance="786" id="15"

node1="-1774026885" node2="847262418" />

…<edge LevenshteinDistance="172" id="922"

node1="-265211993" node2="713539848" /></graphml>

Relaciones con otros fragmentosy con las muestras

Diferencias entre fragmentos

Fichero XML de relaciones entre fragmentos (único)

Page 10: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

Consideraciones previas

1.Decidir si desarrollar desde cero o seleccionar una herramienta existente y ampliable mediante plugins.

2.Decidir alguna forma para tratar el XHTML y detectar fragmentos.

3.Decidir como identificar fragmentos similares.

Page 11: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

Herramientas de prueba de carga analizadas

Licencia Comunidad GUI ¿Ampliable?

Common Public License 1.0

Escasa

Apache License 2.0

Abundante

Apache Software License

Inexistente

Page 12: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

Arquitectura del programa JMeter

•JMeter está organizado por protocolos y funcionalidades.

•Clase principal /bin/ApacheJMeter.jar

•Clases de JMeter /lib/

•Extensiones /lib/ext/

•Incidencias de ejecución /bin/jmeter.log

Page 13: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

Se han desarrollado dos plugins de JMeter para cumplir los objetivos del proyecto final de carrera.

•HTML Downloader

•Query Model Analyzer

Page 14: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

HTML Downloader

•Plugin tipo Listener

•Permite gestionar la lista de direcciones web a analizar.

•Descarga cada muestra en una subcarpeta

•Mantiene un registro de la ejecución

•Puede añadir muestras suplementarias

Page 15: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

Query Model Analyzer

•Plugin tipo Post Processor

•Analiza las muestras descargadas por HTML Downloader

•Generar los resultados del análisis en ficheros XML

•Guarda un fichero de resultados en cada subcarpeta que contenga muestras, y otro fichero XML con las relaciones entre nodos.

•Está preparado para ser ampliado con nuevos tipos de Querys, cálculos de distancias, y demás.

Page 16: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

XPaths vs Expresiones Regulares

¿Documentos mal formados?

Carga de procesamien

to

¿Apoyo de comunidad?

Expresiones regulares

Intransigente (o está contemplado o falla)

Costoso Cada día a menos

XPaths 2.0 Sin problemas Justo Cada día a más

Page 17: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

Distancia de Levenshtein

La distancia de Levenshtein entre "casa" y "calle" es de 3 porque se necesitan al menos tres ediciones elementales para cambiar uno en el otro.

casa → cala (sustitución de 's' por 'l')cala → calla (inserción de 'l' entre 'l' y 'a')calla → calle (sustitución de 'a' por 'e')

Page 18: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

• Abierto a futuros desarrollos• Licencia utilizada Apache License 2.0• Posibles mejoras documentadas:

1. Método de búsqueda de fragmentos (XPath 3.0 …)

2. Cambiar la distancia de Levenshtein3. Añadir un visualizador del grafo de resultados

Page 19: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Detalles técnicos del proyecto

• Abierto a futuros desarrollos

En el repositorio de GitHub del proyecto, [github.com/asabater/Data-mining-with-Jmeter], se

encuentra todo lo necesario para modificar el desarrollo del proyecto.

Método de modificación• Descargar la versión 2.6 de JMeter, y los archivos del

proyecto del repositorio en GitHub.• Desde un IDE, Eclipse por ejemplo, modificar las clases y

compilar.• Volver a arrancar JMeter para ver los cambios realizados.

Page 20: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Aplicación resultante

//div[contains(concat(' ',normalize-space(@class),' '),' link ')]

Page 21: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Demostración

Page 22: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Conclusiones

• El SW desarrollado cumple satisfactoriamente el objetivo de poder observar como va cambiando el contenido de una serie de páginas web, tanto temporalmente como entre aquellas muestras que provengan de diferentes direcciones.

• Al desarrollar para la plataforma JMeter, el objetivo de permitir acceso a URLs y publicas está cubierto.

• El objetivo de poder buscar fragmentos dentro de las muestras descargadas se cumple gracias al uso de las XPaths.

• Carlos Guerrero, considera que su necesidad ha quedado cubierta con el SW desarrollado

Page 23: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Conclusiones

• Las versiones de JMeter son numerosas y cada vez más incompatibles entre ellas.• Es muy difícil asegurar la retrocompatiblidad

• JMeter con cada versión es más pesado

• Es muy gratificante ver como no hay imposible con empeño y trabajo duro

Page 24: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Líneas de futuro

• Cambiar XPath 2.0 por un sistema más avanzado (por ejemplo XPath 3.0)

• Cambiar el cálculo de la Distancia de Levenshtein por otra medida más adecuada

• Modificar el comportamiento del plugin para que vaya generando XMLs con resultados a medida que descarga las muestras

• Añadir un visualizador de ficheros de resultados

Page 25: Adaptación de JMeter para la minería de datos de estructuras de páginas web.

Adaptación de JMeter para la minería de datos de estructuras de páginas

web.

AlumnoAgustín Sabater

Piñeiro

DirectorCarlos Guerrero

Tomé

ESCUELA POLITÉCNICA SUPERIOR UNIVERSITAT DE LES ILLES BALEARS 14-Sep-12