transparencias de tesis phd

77
Generación dinámica de invariantes para composiciones de servicios web en WS-BPEL Manuel Palomo Duarte Tesis doctoral Julio 2011 M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 1 / 67

Upload: drpantera

Post on 05-Dec-2014

805 views

Category:

Technology


1 download

DESCRIPTION

Generación dinámica de invariantes para composiciones de servicios web en WS-BPEL

TRANSCRIPT

Page 1: Transparencias de tesis PhD

Generación dinámica de invariantes para composicionesde servicios web en WS-BPEL

Manuel Palomo Duarte

Tesis doctoral

Julio 2011

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 1 / 67

Page 2: Transparencias de tesis PhD

Índice

1 Introducción

2 Invariantes dinámicos en WS-BPEL

3 Optimizaciones

4 Experimentos

5 Conclusiones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 2 / 67

Page 3: Transparencias de tesis PhD

Introducción

Índice

1 Introducción

2 Invariantes dinámicos en WS-BPEL

3 Optimizaciones

4 Experimentos

5 Conclusiones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 3 / 67

Page 4: Transparencias de tesis PhD

Introducción

Objetivo general de la tesis

ObjetivoDemostrar la viabilidad de la generación dinámica de invariantes (GDI) parala composición de servicios web (SW) en WS-BPEL

DefinicionesGDI técnica de prueba de software que detecta propiedades que

cumple un programa en diversas ejecucionesWS-BPEL lenguaje de programación a gran escala (programming in the

large) para componer SW usando otros SW

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 4 / 67

Page 5: Transparencias de tesis PhD

Introducción

Objetivo general de la tesis

ObjetivoDemostrar la viabilidad de la generación dinámica de invariantes (GDI) parala composición de servicios web (SW) en WS-BPEL

DefinicionesGDI técnica de prueba de software que detecta propiedades que

cumple un programa en diversas ejecucionesWS-BPEL lenguaje de programación a gran escala (programming in the

large) para componer SW usando otros SW

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 4 / 67

Page 6: Transparencias de tesis PhD

Introducción Arquitecturas Orientadas a Servicio

Definiciones

Visión de W3C y OASISArquitecturas Orientadas a Servicio tecnologías para la integración de

software de modo independiente de lenguajes deprogramación, sistemas operativos y arquitecturas hardware

SW son su base, un software con el que interoperar enviandomensajes a través de la web según protocolos estandarizados

Tecnologías estandarizadasXML Schema tipos de datos

XPath consulta de datos XML SchemaWS-BPEL composición de WS por orquestación

WS-BPEL 2.0 es estándar OASIS

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 5 / 67

Page 7: Transparencias de tesis PhD

Introducción Arquitecturas Orientadas a Servicio

Definiciones

Visión de W3C y OASISArquitecturas Orientadas a Servicio tecnologías para la integración de

software de modo independiente de lenguajes deprogramación, sistemas operativos y arquitecturas hardware

SW son su base, un software con el que interoperar enviandomensajes a través de la web según protocolos estandarizados

Tecnologías estandarizadasXML Schema tipos de datos

XPath consulta de datos XML SchemaWS-BPEL composición de WS por orquestación

WS-BPEL 2.0 es estándar OASIS

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 5 / 67

Page 8: Transparencias de tesis PhD

Introducción Arquitecturas Orientadas a Servicio

WS-BPEL

Ejemplo de composición

Cliente

SW1

SWdirector

SW3SW2

Orquestación de servicios

CaracterísticasCódigo XML (desarrollo conGUI)Despliegue y creación deinstancias en servidorDependencia del entorno(SW socios)Instrucciones específicas:invocación de SW, gestión deeventos externos, etc.Código poco modularÁmbitos para variables

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 6 / 67

Page 9: Transparencias de tesis PhD

Introducción Arquitecturas Orientadas a Servicio

Generación de invariantes

Invariante versus invariante potencialInvariante propiedad que cumple un programa (pre/post-condición,

aserto, invariante de bucle, etc.), obtenida con métodosformalesSiempre cierto, pero costoso de conseguir y con resultadoslimitados

Invariante potencial propiedad que se mantiene en una serie de casos deprueba (también llamado invariante generado dinámicamenteo invariante dinámico)Más sencillos de obtener automáticamente, ciertos bajodeterminadas condiciones y amplios resultados

Abuso del términoLa tesis versa sobre invariantes potenciales, pero para agilizar la exposiciónse usará el término invariante a secas

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 7 / 67

Page 10: Transparencias de tesis PhD

Introducción Prueba de software para WS-BPEL

Uso de invariantes

Punto de Programa (PP)Por cada instrucción i del programa se definen dos PP:Antes de i invariantes ciertos justo antes de ejecutar i

Después de i ciertos inmediatamente tras su ejecuciónSi i es una instrucción de bloque pueden anidarse

Usos de invariantesVerificaciónDepuración de errores (prueba de regresión)DocumentaciónMejora de un conjunto de casos de prueba

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 8 / 67

Page 11: Transparencias de tesis PhD

Introducción Prueba de software para WS-BPEL

Ciclo de uso de la GDI propuesto

Fin

Ejecución

Generación deinvariantes

Mejora de los casos de prueba

Mejora del programa

Generadordinámico deinvariantes

Usuario

Casos de pruebaPrograma

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 9 / 67

Page 12: Transparencias de tesis PhD

Introducción Prueba de software para WS-BPEL

GDI para WS-BPEL

InnovaciónLa GDI se ha aplicado a lenguajes imperativos, pero no a WS-BPEL ni otrolenguaje de composición de SW

AdecuaciónNo traducción del códigoEjecución de código en motor WS-BPEL 2.0Capacidad de uso de SW realesSuplantación opcional de SW

SW no disponibles para prueba: coste, bloqueo recursos, etc.Simulación de escenarios: ¿cómo se comportará la composición si esteSW responde tal cosa y este otro tal otra?

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 10 / 67

Page 13: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL

Índice

1 Introducción

2 Invariantes dinámicos en WS-BPEL

3 Optimizaciones

4 Experimentos

5 Conclusiones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 11 / 67

Page 14: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Arquitectura general de GDI [Ernst]

Implementada usando sistemas libres y código propio:

Sistema resultante:

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 12 / 67

Page 15: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Composición del préstamoSe muestra cada fase de la arquitectura con un ejemplo

ClienteCant

Cant<10.000

Asesor

Riesgo<>alto

Aprob=1

ClienteAprob

No

No

AprobAprobador

Riesgo

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 13 / 67

Page 16: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Fase de Instrumentalización

ObjetivoPreparar ficheros para que al ejecutarse generan información de flujo decontrol y de valores de variables

Proceso WS-BPEL original

Etapa de Instrumentalización

Instrumentalizador

Ficherosespecíficos del motor

Proceso WS-BPELinstrumentalizado

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 14 / 67

Page 17: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Instrumentalizado

DecisiónConsiderar PP las entradas y salidas de bloques de actividadesEl usuario indica si instrumentalizar o no un PP y qué variables registrar

ProblemaActiveBPEL genera información de flujo de control de la ejecución de unacomposición, pero no registra los valores de variables

SoluciónIntegrar en ActiveBPEL funciones XPath (código propio) que registran elcontenido de variables (sin modificarlas)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 15 / 67

Page 18: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Instrumentalizado

DecisiónConsiderar PP las entradas y salidas de bloques de actividadesEl usuario indica si instrumentalizar o no un PP y qué variables registrar

ProblemaActiveBPEL genera información de flujo de control de la ejecución de unacomposición, pero no registra los valores de variables

SoluciónIntegrar en ActiveBPEL funciones XPath (código propio) que registran elcontenido de variables (sin modificarlas)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 15 / 67

Page 19: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Código WS-BPEL no instrumentalizado simplificado

<copy><from>true </from><to>proce s sOutput . accept </to>

</copy>

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 16 / 67

Page 20: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Código WS-BPEL instrumentalizado simplificado

reg(’processOutput’)

<copy><from>true </from><to>proce s sOutput . accept </to>

</copy>

reg(’processOutput’)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 17 / 67

Page 21: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Fase de ejecución

ObjetivoEjecutar los casos de prueba sobre la composición instrumentalizada

Etapa de Ejecución

BPELUnitServicios simulados

Mensajes

Registros de ejecución de

casos de prueba

ExtensionesXPath deregistro

ActiveBPEL

Especificación decasos de prueba

Serviciosreales

Mensajes

Ficherosespecíficos del motor

Proceso WS-BPELinstrumentalizado

Cambio de llamadasa servicios simulados

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 18 / 67

Page 22: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Ejecución

Pasos que realiza BPELUnit1 Desplegar la composición en el motor ActiveBPEL2 Lanzar el servidor de SW simulados3 Para cada caso de prueba

1 Si procede, configurar SW simulados2 Invocar a la composición con los parámetros correctos3 Almacenar resultados

4 Replegar la composición

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 19 / 67

Page 23: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Fragmento simplificado del registro de ejecución extendido

INSPECTION(processOutput.accept) = false

Execu t i ng [ ( . . . ) copy ]Completed no rma l l y [ ( . . . ) copy ]

INSPECTION(processOutput.accept) = true

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 20 / 67

Page 24: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Fase de análisis

ObjetivoEjecutar el generador de invariantes Daikon con la información recopilada

Registros de ejecución de

casos de prueba

Daikon

Ficheros específicosde Daikon

Invariantes inferidos

Etapa de análisis

Preprocesador

Proceso WS-BPELinstrumentalizado

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 21 / 67

Page 25: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Análisis

Daikon necesitaLos registros de ejecución en su formato de entradaUn fichero de declaracionesDe cada variable inspeccionada en un PP indica:

NombreTipo original (XML Schema)Tipo para Daikon (Java)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 22 / 67

Page 26: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Fichero de declaraciones simplificado

SmallAmountLowRisk : : : ENTERproce s sOutput . accep txsd : boo l eanboo l ean

SmallAmountLowRisk : : : EXITproce s sOutput . accep txsd : boo l eanboo l ean

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 23 / 67

Page 27: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Arquitectura

Ejemplo de invariantes

Cuando la cantidad es pequeña y riesgo es bajo

SmallAmountLowRisk : : : ENTERas s e s s o rOu tpu t . r i s k = " low "p r o c e s s I n p u t . amount < 10000proce s sOutput . accep t = 0

SmallAmountLowRisk : : : EXITa s s e s s o rOu tpu t . r i s k = " low "p r o c e s s I n p u t . amount < 10000proce s sOutput . accep t = 1

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 24 / 67

Page 28: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Análisis de resultados

Ejemplo de invariantes que muestran errores

Código WS-BPEL simplificado con errorEn la condición de un if, donde había un = se pone un ! =

<i f >( a s s e s s o rOu tpu t . r i s k != ’ h igh ’ )

Los invariantes muestran el error

SmallAmountLowRisk : : : ENTERas s e s s o rOu tpu t . r i s k = " h igh "

Smal lAmountHighRisk : : : ENTERas s e s s o rOu tpu t . r i s k = " low "

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 25 / 67

Page 29: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Tipos de datos en WS-BPEL y Daikon

ProblemaXML Schema permite definir variables tipo árbolPero Daikon sólo puede procesar estructuras de una dimensión

SoluciónDividir cada variable tipo árbol de más de un nivel en varias variables tipovector unidimensional (respetando parte de la estructura del árbol)

ImplementaciónTakuan incorpora dos técnicas para solucionar este problema:

Aplanado (matrix slicing)División (matrix flattening)

Ejemplo con variable ficticia de ventasM. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 26 / 67

Page 30: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Tipos de datos en WS-BPEL y Daikon

ProblemaXML Schema permite definir variables tipo árbolPero Daikon sólo puede procesar estructuras de una dimensión

SoluciónDividir cada variable tipo árbol de más de un nivel en varias variables tipovector unidimensional (respetando parte de la estructura del árbol)

ImplementaciónTakuan incorpora dos técnicas para solucionar este problema:

Aplanado (matrix slicing)División (matrix flattening)

Ejemplo con variable ficticia de ventasM. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 26 / 67

Page 31: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Venta [1]

Artículo [1]

Precio [1]

Pedido [1]

Artículo [2]

Precio [2]

Artículo [3]

Precio [3]

Pedido [2]

Artículo [4]

Precio [4]

Venta [2]

Artículo [5]

Precio [5]

Pedido [3]

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 27 / 67

Page 32: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Correspondencia mediante aplanado

FuncionamientoCrea una variable por cada tipo de elemento hoja (da igual sus ancestros)siguiendo el orden del documento

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 28 / 67

Page 33: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Venta [1]

Artículo [1]

Precio [1]

Pedido [1]

Artículo [2]

Precio [2]

Artículo [3]

Precio [3]

Pedido [2]

Artículo [4]

Precio [4]

Venta [2]

Artículo [5]

Precio [5]

Pedido [3]

Venta.Pedido.Artículo

Artículo [2]

Artículo [3]

Artículo [4]

Artículo [5]

Artículo [1]

Venta.Pedido.Precio

Precio [2]

Precio [3]

Precio [4]

Precio [5]

Precio [1]

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 29 / 67

Page 34: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Discusión de correspondencia mediante aplanado

VentajasGenera invariantes sobre todos los elementos de un determinado tipoen la estructura originalEl número de variables se mantiene constante sobre el número deelementos y el nivel de anidamiento

InconvenientesRompe bastante la estructura del árbol original

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 30 / 67

Page 35: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Correspondencia mediante división

FuncionamientoDivide iterativamente el árbol desde la raíz hasta que queden un vectorunidimensional por cada tipo de variable hoja

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 31 / 67

Page 36: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Venta [1]

Artículo [1]

Precio [1]

Pedido [1]

Artículo [2]

Precio [2]

Artículo [3]

Precio [3]

Pedido [2]

Artículo [4]

Precio [4]

Venta [2]

Artículo [5]

Precio [5]

Pedido [3]

Venta[1].Pedido[1].Artículo

Artículo [2]

Venta[1].Pedido[1].Precio

Precio [2]

Venta[1].Pedido[2].Artículo

Artículo [4]

Venta[1].Pedido[2].Precio

Precio [4]

Venta[2].Pedido[3].Artículo

Venta[2].Pedido[3].Precio

Artículo [1]

Artículo [3]

Artículo [5]

Precio [1]

Precio [3]

Precio [5]

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 32 / 67

Page 37: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Discusión de correspondencia mediante división

VentajasPermite obtener invariantes de elementos concretosCada variable es un conjunto de elementos contiguos en el árbol XMLoriginal

InconvenientesLa cantidad de variables se incrementa considerablemente al aumentarlas dimensiones y los elementosLas variables resultantes son independientes a todos los efectos

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 33 / 67

Page 38: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Composición de la metabúsqueda

DescripciónBusca en Google y MSN webs relacionadas con un términoDevuelve sus resultados intercalados empezando por Google

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 34 / 67

Page 39: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Invariantes en metabúsqueda con aplanado

maxGoogle one o f { 0 , 1 , 3 }

r e s u l t [ ] . from e l ement s one o f { " Google " , "MSN" }

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 35 / 67

Page 40: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Invariantes en metabúsqueda con división

maxGoogle one o f { 0 , 1 , 3 }

r e s u l t [ 1 ] . from one o f { [ Google ] , [MSN] }r e s u l t [ 2 ] . from one o f { [ Google ] , [MSN] }r e s u l t [ 3 ] . from one o f { [ Google ] , [MSN] }r e s u l t [ 4 ] . from e l ement s = "MSN"r e s u l t [ 5 ] . from e l ement s = " Google "r e s u l t [ 6 ] . from e l ement s = "MSN"

s i z e ( r e s u l t [ 3 ] . from ) one o f { 0 , 1 }s i z e ( r e s u l t [ 4 ] . from ) one o f { 0 , 1 }s i z e ( r e s u l t [ 5 ] . from ) one o f { 0 , 1 }s i z e ( r e s u l t [ 6 ] . from ) one o f { 0 , 1 }

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 36 / 67

Page 41: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Correspondencia XML Schema

Resumen

Dos tipos de correspondencia complementarias:

AplanadoGenera menos variables e invariantes, pero más generalesMenor tiempo de cómputoAdecuado para visión general de la composición

DivisiónGenera muchas variables e invariantes muy concretosMayor tiempo de cómputoAdecuado para observar comportamientos en detalle

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 37 / 67

Page 42: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Resultados

Rendimiento medido

Tiempo de ejecuciónEn metabúsqueda es bastante alto:

200 casos ≈ +horaDiferencia entre división (≈ +20%) y aplanadoReducible seleccionando PP (64) o campos de variables (> 10,000)

SalidaSe obtienen invariantes no deseables

Invariantes que informan de restricciones XML SchemaInvariantes no informativos (variables no relacionables)

Es necesario implementar optimizaciones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 38 / 67

Page 43: Transparencias de tesis PhD

Invariantes dinámicos en WS-BPEL Resultados

Rendimiento medido

Tiempo de ejecuciónEn metabúsqueda es bastante alto:

200 casos ≈ +horaDiferencia entre división (≈ +20%) y aplanadoReducible seleccionando PP (64) o campos de variables (> 10,000)

SalidaSe obtienen invariantes no deseables

Invariantes que informan de restricciones XML SchemaInvariantes no informativos (variables no relacionables)

Es necesario implementar optimizaciones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 38 / 67

Page 44: Transparencias de tesis PhD

Optimizaciones

Índice

1 Introducción

2 Invariantes dinámicos en WS-BPEL

3 Optimizaciones

4 Experimentos

5 Conclusiones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 39 / 67

Page 45: Transparencias de tesis PhD

Optimizaciones

Análisis de rendimiento

Desglose del tiempo de ejecuciónHay tres pasos en el proceso:Instrumentalización tiempo constante

Ejecución BPELUnit y ActiveBPEL tienen tiempo linealAnálisis Daikon no es lineal

Time = O((vars3 ∗ Tfalsif + trueInvars ∗ casos) ∗ pp)

ComponentesSería deseable mitigarlos:Tfalsif y casos difíciles de reducirVars, trueInvars y pp con margen de mejora

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 40 / 67

Page 46: Transparencias de tesis PhD

Optimizaciones

Optimizaciones implementadasComparabilidad evita invariantes que relacionen variables sin conexiónFiltrado de variables y PP solo registra variables usadas en un PPRestricciones XML Schema no comprueba invariantes que informen de

restricciones de los tipos XML Schema

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 41 / 67

Page 47: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Justificación

ObjetivoUsar información de comparabilidad implícita en la composición para evitarinvariantes sin sentido

EjemploUna composición puede tener tres variables tipo entero:

La edad de una persona que pide un préstamoEl código postal de su domicilioLos años de devolución del préstamo

Solo edad y devolución son del mismo tipo semántico (años naturales)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 42 / 67

Page 48: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Implementación

ProblemaDaikon admite un índice de comparabilidad en cada variable

Pero no puede calcularse estáticamente por XPathAnalizar comparabilidad de campos accedidos en tiempo de ejecución

SoluciónAmpliar los registros de ActiveBPEL con los tipos abstractos

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 43 / 67

Page 49: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Implementación

ProblemaDaikon admite un índice de comparabilidad en cada variable

Pero no puede calcularse estáticamente por XPathAnalizar comparabilidad de campos accedidos en tiempo de ejecución

SoluciónAmpliar los registros de ActiveBPEL con los tipos abstractos

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 43 / 67

Page 50: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Algoritmo

Se analiza el uso de los miembros de cada expresiónLas variables de una expresión pertenecen a un mismo tipo abstracto, salvo:

Argumentos de una llamada a función (excepto min, MAX y similares)Operadores relacionales and, or y notPredicados de filtrados de conjuntos de nodos

Ejemplo:

( max(cliente[i].edad,edadAvalista) < umbral ) and solvente(dni,visa)

Se agrega la información de todos los casos de prueba

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 44 / 67

Page 51: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Fichero de declaraciones de la metabúsqueda simplificado

DECLAREGoog leSearch . queryxsd : s t r i n gS t r i n g6

i n p u tV a r i a b l e . l anguagexsd : s t r i n gS t r i n g3

i n p u tV a r i a b l e . que ryxsd : s t r i n gS t r i n g6

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 45 / 67

Page 52: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Resultados en la metabúsqueda

ComparabilidadReducción de número de invariantes (≈ −10%)Se eliminan invariantes no informativosEj, si un buscador dejaba vacíos día y hora, se obtenía:

result.day = result.hour

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 46 / 67

Page 53: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Filtrado de variables no usadas

Problemática con ámbitos de variables en WS-BPELLa colaboración entre actividades es mediante variables compartidas

Las variables son accesibles en muchos PPPero solo se suelen usar ciertos campos en algunos de ellos

SoluciónRegistrar campos de variables sólo en los PP donde se usanSi un PP no tiene variables registradas se puede eliminar

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 47 / 67

Page 54: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Filtrado de variables no usadas

Problemática con ámbitos de variables en WS-BPELLa colaboración entre actividades es mediante variables compartidas

Las variables son accesibles en muchos PPPero solo se suelen usar ciertos campos en algunos de ellos

SoluciónRegistrar campos de variables sólo en los PP donde se usanSi un PP no tiene variables registradas se puede eliminar

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 47 / 67

Page 55: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Filtrado de variables no usadas

Problemática con ámbitos de variables en WS-BPELLa colaboración entre actividades es mediante variables compartidas

Las variables son accesibles en muchos PPPero solo se suelen usar ciertos campos en algunos de ellos

SoluciónRegistrar campos de variables sólo en los PP donde se usanSi un PP no tiene variables registradas se puede eliminar

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 47 / 67

Page 56: Transparencias de tesis PhD

Optimizaciones Comparabilidad

Resultados en la metabúsqueda

Filtrado de variablesMuy agresivo: ≈ −90% registros de variables y de invariantesReduce significativamente el tiempo de ejecución (≈ −70% a −80%)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 48 / 67

Page 57: Transparencias de tesis PhD

Optimizaciones Restricciones XML Schema

Problemática

Restricciones XML SchemaXML Schema permite definir restricciones sobre las variables arbóreas:longitudes máximas o mínimas, listas de valores válidos, etc

ProblemaSe infieren como invariantes: no aportan información y consumen tiempoCon correspondencia por división se multiplica el problema

SoluciónAmpliar Daikon para que acepte una lista de propiedades que no comprobaráTambién válida para otros lenguajes que usen tipos con restriccionessimilares (vectores de tamaño fijo, etc.)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 49 / 67

Page 58: Transparencias de tesis PhD

Optimizaciones Restricciones XML Schema

Problemática

Restricciones XML SchemaXML Schema permite definir restricciones sobre las variables arbóreas:longitudes máximas o mínimas, listas de valores válidos, etc

ProblemaSe infieren como invariantes: no aportan información y consumen tiempoCon correspondencia por división se multiplica el problema

SoluciónAmpliar Daikon para que acepte una lista de propiedades que no comprobaráTambién válida para otros lenguajes que usen tipos con restriccionessimilares (vectores de tamaño fijo, etc.)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 49 / 67

Page 59: Transparencias de tesis PhD

Optimizaciones Restricciones XML Schema

Fichero de declaraciones ampliado

DECLARESmallAmountLowRisk : : : ENTERas s e s s o rOu tpu t . r i s kRiskTypeS t r i n g2

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 50 / 67

Page 60: Transparencias de tesis PhD

Optimizaciones Restricciones XML Schema

Fichero de declaraciones ampliado

DECLARESmallAmountLowRisk : : : ENTERas s e s s o rOu tpu t . r i s kRiskType # minlength=1, maxlength=1, values=["high", "low"]S t r i n g2

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 51 / 67

Page 61: Transparencias de tesis PhD

Optimizaciones Restricciones XML Schema

Resultados en la metabúsqueda

Restricciones XML SchemaCon aplanado resultados muy similaresCon división desaparecen de 600 a 9.000 invariantes (≈ −30%)

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 52 / 67

Page 62: Transparencias de tesis PhD

Experimentos

Índice

1 Introducción

2 Invariantes dinámicos en WS-BPEL

3 Optimizaciones

4 Experimentos

5 Conclusiones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 53 / 67

Page 63: Transparencias de tesis PhD

Experimentos

Composiciones

Se han realizado experimentos conMercado de compraventa: 53 instrucciones, 3 variablesPréstamo (2 versiones): ≈ 110 instrucciones, 6 variablesMetabúsqueda (2 versiones): ≈ 600 instrucciones, 20 variables

EstructuraBasados en los realizados por Ernst

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 54 / 67

Page 64: Transparencias de tesis PhD

Experimentos

Casos de prueba aleatorios

ObjetivoDemostrar la convergencia de Takuan usando casos de prueba aleatorios

EstructuraSe generan 5 casos de prueba aleatorios, y se ejecuta en TakuanSe añaden al conjunto 5 más y se ejecutan los 10Se añaden al conjunto 10 más y se ejecutan los 20. . . hasta que la salida se estabiliza

Se comparan los resultados del conjunto más completo con los demás

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 55 / 67

Page 65: Transparencias de tesis PhD

Experimentos

Casos de prueba con distintas coberturas

ObjetivoDemostrar la convergencia de la GDI con Takuan usando casos de pruebacon distinta cobertura del flujo de ejecución

EstructuraCinco conjuntos casos de prueba de igual tamaño pero con distintascoberturas

AleatorioInstrucciones (dos conjuntos)RamasCaminos

Se ejecutan en Takuan y se almacenan resultadosSe comparan los resultados con cobertura de caminos con las demás

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 56 / 67

Page 66: Transparencias de tesis PhD

Experimentos

Análisis de resultados

AleatoriosEstabilización con distinta cantidad de casos de prueba:

En metabúsqueda se necesitaron de 100 a 500 casos de pruebaEn composiciones pequeñas menos de 50

Por coberturasMejora progresiva de resultados al mejorar la cobertura:Diferencias en invariantes (sobre 66): 7, 5, 3 y 2Poca diferencia entre cobertura por ramas y de caminos

Tanto la cantidad de casos aleatorios como su cobertura son indicadores dela fiabilidad de los invariantes generados

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 57 / 67

Page 67: Transparencias de tesis PhD

Experimentos

Análisis de resultados

AleatoriosEstabilización con distinta cantidad de casos de prueba:

En metabúsqueda se necesitaron de 100 a 500 casos de pruebaEn composiciones pequeñas menos de 50

Por coberturasMejora progresiva de resultados al mejorar la cobertura:Diferencias en invariantes (sobre 66): 7, 5, 3 y 2Poca diferencia entre cobertura por ramas y de caminos

Tanto la cantidad de casos aleatorios como su cobertura son indicadores dela fiabilidad de los invariantes generados

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 57 / 67

Page 68: Transparencias de tesis PhD

Conclusiones

Índice

1 Introducción

2 Invariantes dinámicos en WS-BPEL

3 Optimizaciones

4 Experimentos

5 Conclusiones

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 58 / 67

Page 69: Transparencias de tesis PhD

Conclusiones Resumen

Objetivos cumplidosAdecuación de la GDI para WS-BPELDiseño de una arquitectura para la GDI en WS-BPELSe ha implementado Takuan, el único generador dinámico deinvariantes para WS-BPEL hasta la fechaTakuan recibe una composición y un conjunto de casos de prueba, ygenera invariantes automáticamenteSe ha probado su utilidad para detectar errores en una composiciónIncorpora optimizaciones para eliminar invariantes no deseablesSe ha estudiado su estabilidad con entrada aleatoria y según cobertura

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 59 / 67

Page 70: Transparencias de tesis PhD

Conclusiones Resumen

AportacionesIntegración en ActiveBPEL de funciones XPath de registroDesarrollo de dos modelos de correspondencia XML Schema a JavaImplementación optimizaciones específicas:

Comparabilidad basada en expresiones de las ejecucionesRegistro de campos de variables (y PP) según usoAmpliación de Daikon para que acepte invariantes conocidos: aplicado aXML Schema, válido para otros lenguajes

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 60 / 67

Page 71: Transparencias de tesis PhD

Conclusiones Trabajos futuros

Trabajos futurosImplementar otras correspondencias XML Schema para composicionesdonde proceda usarlasEstudio cualitativo del comportamiento del sistema: tamaño deentrada, invariantes, filtrado de variables, etc.Comparación con otras propuestas de prueba para WS-BPELAmpliar el estudio a tecnologías relacionadas: BPMN, BPELScript,BPEL4People, etc.

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 61 / 67

Page 72: Transparencias de tesis PhD

Conclusiones Producción

Principales publicacionesRevista JCR (enviado):

Congresos internacionales:

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 62 / 67

Page 73: Transparencias de tesis PhD

Conclusiones Producción

Otros méritos

Comité científico WS-BPEL

Estancia en Moscú, Rusia

Capítulo de libro

Software libre y aportaciones alproyecto BPELUnit

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 63 / 67

Page 74: Transparencias de tesis PhD

Conclusiones Producción

Captura del plugin de Takuan para Netbeans

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 64 / 67

Page 75: Transparencias de tesis PhD

Conclusiones Producción

Captura de IdigInBPEL

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 65 / 67

Page 76: Transparencias de tesis PhD

Conclusiones Preguntas

Trabajo financiado por el Programa Nacional de I+D+I del Ministerio de Educacióny Ciencia y fondos FEDER, proyecto SOAQSim (TIN2007-67843-C06-04)

Gracias por su atención

¿Preguntas?

Esta tesis, los programas y datos necesarios para repetir sus experimentos y losresultantes de realizarlos están disponibles en la URL persistente

http://purl.org/mpalomo/tesis

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 66 / 67

Page 77: Transparencias de tesis PhD

Conclusiones Licencia

Esta presentación es libre

© Manuel Palomo Duarte 2011, excepto los logotipos

Este trabajo se publica bajo la licencia:Creative Commons Attribution-Share Alike Licensehttp://creativecommons.org/licenses/by-sa/3.0/

Usted es libre de:copiar, distribuir y comunicar públicamente la obrahacer obras derivadas

Bajo las condiciones siguientes:Atribución Debes reconocer la autoría de la obra en los términos

especificados por el propio autor o licenciante.Licenciamiento Recíproco Si alteras, transformas o creas una obra a partir

de esta obra, solo podrás distribuir la obra resultante bajo unalicencia igual a ésta.

M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 67 / 67