Transparencias de tesis PhD

770 views

Published on

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

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

No Downloads
Views
Total views
770
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transparencias de tesis PhD

  1. 1. 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
  2. 2. Índice1 Introducción2 Invariantes dinámicos en WS-BPEL3 Optimizaciones4 Experimentos5 Conclusiones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 2 / 67
  3. 3. IntroducciónÍndice1 Introducción2 Invariantes dinámicos en WS-BPEL3 Optimizaciones4 Experimentos5 Conclusiones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 3 / 67
  4. 4. IntroducciónObjetivo general de la tesisObjetivoDemostrar la viabilidad de la generación dinámica de invariantes (GDI) parala composición de servicios web (SW) en WS-BPELDefiniciones GDI técnica de prueba de software que detecta propiedades que cumple un programa en diversas ejecuciones WS-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
  5. 5. IntroducciónObjetivo general de la tesisObjetivoDemostrar la viabilidad de la generación dinámica de invariantes (GDI) parala composición de servicios web (SW) en WS-BPELDefiniciones GDI técnica de prueba de software que detecta propiedades que cumple un programa en diversas ejecuciones WS-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
  6. 6. Introducción Arquitecturas Orientadas a ServicioDefinicionesVisión de W3C y OASISArquitecturas Orientadas a Servicio tecnologías para la integración de software de modo independiente de lenguajes de programación, sistemas operativos y arquitecturas hardware SW son su base, un software con el que interoperar enviando mensajes a través de la web según protocolos estandarizadosTecnologías estandarizadasXML Schema tipos de datos XPath consulta de datos XML Schema WS-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
  7. 7. Introducción Arquitecturas Orientadas a ServicioDefinicionesVisión de W3C y OASISArquitecturas Orientadas a Servicio tecnologías para la integración de software de modo independiente de lenguajes de programación, sistemas operativos y arquitecturas hardware SW son su base, un software con el que interoperar enviando mensajes a través de la web según protocolos estandarizadosTecnologías estandarizadasXML Schema tipos de datos XPath consulta de datos XML Schema WS-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
  8. 8. Introducción Arquitecturas Orientadas a ServicioWS-BPEL Ejemplo de composición Características Código XML (desarrollo con GUI) Despliegue y creación de instancias en servidor Dependencia del entorno (SW socios) Instrucciones específicas: invocación de SW, gestión de eventos externos, etc. Código poco modular Ámbitos para variables M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 6 / 67
  9. 9. Introducción Arquitecturas Orientadas a ServicioGeneración de invariantesInvariante versus invariante potencial Invariante propiedad que cumple un programa (pre/post-condición, aserto, invariante de bucle, etc.), obtenida con métodos formales Siempre cierto, pero costoso de conseguir y con resultados limitadosInvariante potencial propiedad que se mantiene en una serie de casos de prueba (también llamado invariante generado dinámicamente o invariante dinámico) Más sencillos de obtener automáticamente, ciertos bajo determinadas condiciones y amplios resultadosAbuso 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
  10. 10. Introducción Prueba de software para WS-BPELUso de invariantesPunto de Programa (PP)Por cada instrucción i del programa se definen dos PP: Antes de i invariantes ciertos justo antes de ejecutar iDespués de i ciertos inmediatamente tras su ejecuciónSi i es una instrucción de bloque pueden anidarseUsos de invariantes Verificación Depuración de errores (prueba de regresión) Documentación Mejora de un conjunto de casos de prueba M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 8 / 67
  11. 11. Introducción Prueba de software para WS-BPELCiclo de uso de la GDI propuesto Programa Casos de prueba Generador dinámico de invariantes Ejecución Generación de invariantes Usuario Mejora de los Mejora del casos de prueba programa Fin M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 9 / 67
  12. 12. Introducción Prueba de software para WS-BPELGDI para WS-BPELInnovaciónLa GDI se ha aplicado a lenguajes imperativos, pero no a WS-BPEL ni otrolenguaje de composición de SWAdecuación No traducción del código Ejecución de código en motor WS-BPEL 2.0 Capacidad de uso de SW reales Suplantació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 este SW responde tal cosa y este otro tal otra? M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 10 / 67
  13. 13. Invariantes dinámicos en WS-BPELÍndice1 Introducción2 Invariantes dinámicos en WS-BPEL3 Optimizaciones4 Experimentos5 Conclusiones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 11 / 67
  14. 14. Invariantes dinámicos en WS-BPEL ArquitecturaArquitectura 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
  15. 15. Invariantes dinámicos en WS-BPEL ArquitecturaComposición del préstamoSe muestra cada fase de la arquitectura con un ejemplo Cant Cliente Sí No Cant<10.000 Riesgo Asesor Sí No Riesgo<>alto Aprob Aprob=1 Aprobador Aprob Cliente M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 13 / 67
  16. 16. Invariantes dinámicos en WS-BPEL ArquitecturaFase de InstrumentalizaciónObjetivoPreparar 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 Ficheros Proceso WS-BPEL específicos del motor instrumentalizado M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 14 / 67
  17. 17. Invariantes dinámicos en WS-BPEL ArquitecturaInstrumentalizadoDecisiónConsiderar PP las entradas y salidas de bloques de actividadesEl usuario indica si instrumentalizar o no un PP y qué variables registrarProblemaActiveBPEL genera información de flujo de control de la ejecución de unacomposición, pero no registra los valores de variablesSolució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
  18. 18. Invariantes dinámicos en WS-BPEL ArquitecturaInstrumentalizadoDecisiónConsiderar PP las entradas y salidas de bloques de actividadesEl usuario indica si instrumentalizar o no un PP y qué variables registrarProblemaActiveBPEL genera información de flujo de control de la ejecución de unacomposición, pero no registra los valores de variablesSolució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
  19. 19. Invariantes dinámicos en WS-BPEL ArquitecturaCódigo WS-BPEL no instrumentalizado simplificado<copy> <from>t r u e </from> <to>p r o c e s s O u t p u t . a c c e p t </to></copy> M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 16 / 67
  20. 20. Invariantes dinámicos en WS-BPEL ArquitecturaCódigo WS-BPEL instrumentalizado simplificadoreg(’processOutput’)<copy> <from>t r u e </from> <to>p r o c e s s O u t p u t . a c c e p t </to></copy>reg(’processOutput’) M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 17 / 67
  21. 21. Invariantes dinámicos en WS-BPEL ArquitecturaFase de ejecuciónObjetivoEjecutar los casos de prueba sobre la composición instrumentalizada Especificación de Ficheros Proceso WS-BPEL casos de prueba específicos del motor instrumentalizado Etapa de Ejecución Cambio de llamadas a servicios simulados BPELUnit Servicios simulados Mensajes Extensiones ActiveBPEL XPath de Servicios Mensajes registro reales Registros de ejecución de casos de prueba M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 18 / 67
  22. 22. Invariantes dinámicos en WS-BPEL ArquitecturaEjecuciónPasos que realiza BPELUnit 1 Desplegar la composición en el motor ActiveBPEL 2 Lanzar el servidor de SW simulados 3 Para cada caso de prueba 1 Si procede, configurar SW simulados 2 Invocar a la composición con los parámetros correctos 3 Almacenar resultados 4 Replegar la composición M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 19 / 67
  23. 23. Invariantes dinámicos en WS-BPEL ArquitecturaFragmento simplificado del registro de ejecución extendidoINSPECTION(processOutput.accept) = falseE x e c u t i n g [ ( . . . ) copy ]Completed n o r m a l l y [ ( . . . ) copy ]INSPECTION(processOutput.accept) = true M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 20 / 67
  24. 24. Invariantes dinámicos en WS-BPEL ArquitecturaFase de análisisObjetivoEjecutar el generador de invariantes Daikon con la información recopilada Registros de Proceso WS-BPEL ejecución de instrumentalizado casos de prueba Etapa de análisis Preprocesador Ficheros específicos de Daikon Daikon Invariantes inferidos M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 21 / 67
  25. 25. Invariantes dinámicos en WS-BPEL ArquitecturaAnálisisDaikon necesita Los registros de ejecución en su formato de entrada Un fichero de declaraciones De cada variable inspeccionada en un PP indica: Nombre Tipo original (XML Schema) Tipo para Daikon (Java) M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 22 / 67
  26. 26. Invariantes dinámicos en WS-BPEL ArquitecturaFichero de declaraciones simplificadoSmallAmountLowRisk : : : ENTER processOutput . accept xsd : boolean booleanSmallAmountLowRisk : : : EXIT processOutput . accept xsd : boolean boolean M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 23 / 67
  27. 27. Invariantes dinámicos en WS-BPEL ArquitecturaEjemplo de invariantesCuando la cantidad es pequeña y riesgo es bajoSmallAmountLowRisk : : : ENTER a s s e s s o r O u t p u t . r i s k = " low " p r o c e s s I n p u t . amount < 10000 processOutput . accept = 0SmallAmountLowRisk : : : EXIT a s s e s s o r O u t p u t . r i s k = " low " p r o c e s s I n p u t . amount < 10000 processOutput . accept = 1 M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 24 / 67
  28. 28. Invariantes dinámicos en WS-BPEL Análisis de resultadosEjemplo de invariantes que muestran erroresCó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 r O u t p u t . r i s k != ’ h i g h ’ )Los invariantes muestran el errorSmallAmountLowRisk : : : ENTER assessorOutput . r i s k = " high "S m a l l A m ou n t Hi g h Ri s k : : : ENTER a s s e s s o r O u t p u t . r i s k = " low " M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 25 / 67
  29. 29. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaTipos de datos en WS-BPEL y DaikonProblemaXML Schema permite definir variables tipo árbolPero Daikon sólo puede procesar estructuras de una dimensiónSolució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 ventas M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 26 / 67
  30. 30. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaTipos de datos en WS-BPEL y DaikonProblemaXML Schema permite definir variables tipo árbolPero Daikon sólo puede procesar estructuras de una dimensiónSolució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 ventas M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 26 / 67
  31. 31. Invariantes dinámicos en WS-BPEL Correspondencia XML Schema Venta [1] Pedido [1] Artículo [1] Precio [1] Artículo [2] Precio [2] Pedido [2] Artículo [3] Precio [3] Artículo [4] Precio [4] Venta [2] Pedido [3] Artículo [5] Precio [5]M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 27 / 67
  32. 32. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaCorrespondencia mediante aplanadoFuncionamientoCrea 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
  33. 33. Invariantes dinámicos en WS-BPEL Correspondencia XML Schema Venta [1] Venta.Pedido.Artículo Pedido [1] Artículo [1] Artículo [1] Artículo [2] Precio [1] Artículo [2] Artículo [3] Precio [2] Artículo [4] Pedido [2] Artículo [5] Artículo [3] Precio [3] Venta.Pedido.Precio Artículo [4] Precio [1] Precio [4] Precio [2] Venta [2] Precio [3] Pedido [3] Precio [4] Artículo [5] Precio [5] Precio [5]M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 29 / 67
  34. 34. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaDiscusión de correspondencia mediante aplanadoVentajas Genera invariantes sobre todos los elementos de un determinado tipo en la estructura original El número de variables se mantiene constante sobre el número de elementos y el nivel de anidamientoInconvenientes Rompe bastante la estructura del árbol original M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 30 / 67
  35. 35. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaCorrespondencia mediante divisiónFuncionamientoDivide 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
  36. 36. Invariantes dinámicos en WS-BPEL Correspondencia XML Schema Venta [1] Venta[1].Pedido[1].Artículo Pedido [1] Artículo [1] Artículo [1] Artículo [2] Precio [1] Venta[1].Pedido[1].Precio Precio [1] Artículo [2] Precio [2] Precio [2] Venta[1].Pedido[2].Artículo Pedido [2] Artículo [3] Artículo [3] Artículo [4] Precio [3] Venta[1].Pedido[2].Precio Artículo [4] Precio [3] Precio [4] Precio [4] Venta[2].Pedido[3].Artículo Venta [2] Artículo [5] Pedido [3] Artículo [5] Venta[2].Pedido[3].Precio Precio [5] Precio [5]M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 32 / 67
  37. 37. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaDiscusión de correspondencia mediante divisiónVentajas Permite obtener invariantes de elementos concretos Cada variable es un conjunto de elementos contiguos en el árbol XML originalInconvenientes La cantidad de variables se incrementa considerablemente al aumentar las dimensiones y los elementos Las variables resultantes son independientes a todos los efectos M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 33 / 67
  38. 38. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaComposición de la metabúsquedaDescripció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
  39. 39. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaInvariantes en metabúsqueda con aplanadomaxGoogle one o f { 0 , 1 , 3 }r e s u l t [ ] . from e l e m e n t s one o f { " G o o g l e " , "MSN" } M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 35 / 67
  40. 40. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaInvariantes en metabúsqueda con divisiónmaxGoogle one o f { 0 , 1 , 3 }result [ 1 ] . from one o f { [ G o o g l e ] , [MSN] }result [ 2 ] . from one o f { [ G o o g l e ] , [MSN] }result [ 3 ] . from one o f { [ G o o g l e ] , [MSN] }result [ 4 ] . from elements = "MSN"result [ 5 ] . from elements = " Google "result [ 6 ] . from elements = "MSN"size ( result [3]. from ) one of { 0, 1 }size ( result [4]. from ) one of { 0, 1 }size ( result [5]. from ) one of { 0, 1 }size ( result [6]. from ) one of { 0, 1 } M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 36 / 67
  41. 41. Invariantes dinámicos en WS-BPEL Correspondencia XML SchemaResumenDos tipos de correspondencia complementarias:AplanadoGenera menos variables e invariantes, pero más generalesMenor tiempo de cómputoAdecuado para visión general de la composiciónDivisió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
  42. 42. Invariantes dinámicos en WS-BPEL ResultadosRendimiento medidoTiempo de ejecuciónEn metabúsqueda es bastante alto: 200 casos ≈ +hora Diferencia entre división (≈ +20 %) y aplanado Reducible seleccionando PP (64) o campos de variables (> 10,000)SalidaSe obtienen invariantes no deseables Invariantes que informan de restricciones XML Schema Invariantes no informativos (variables no relacionables)Es necesario implementar optimizaciones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 38 / 67
  43. 43. Invariantes dinámicos en WS-BPEL ResultadosRendimiento medidoTiempo de ejecuciónEn metabúsqueda es bastante alto: 200 casos ≈ +hora Diferencia entre división (≈ +20 %) y aplanado Reducible seleccionando PP (64) o campos de variables (> 10,000)SalidaSe obtienen invariantes no deseables Invariantes que informan de restricciones XML Schema Invariantes no informativos (variables no relacionables)Es necesario implementar optimizaciones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 38 / 67
  44. 44. OptimizacionesÍndice1 Introducción2 Invariantes dinámicos en WS-BPEL3 Optimizaciones4 Experimentos5 Conclusiones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 39 / 67
  45. 45. OptimizacionesAnálisis de rendimientoDesglose del tiempo de ejecuciónHay tres pasos en el proceso:Instrumentalización tiempo constante Ejecución BPELUnit y ActiveBPEL tienen tiempo lineal Análisis Daikon no es lineal Time = O((vars 3 ∗ 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
  46. 46. OptimizacionesOptimizaciones 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
  47. 47. Optimizaciones ComparabilidadJustificaciónObjetivoUsar información de comparabilidad implícita en la composición para evitarinvariantes sin sentidoEjemploUna composición puede tener tres variables tipo entero: La edad de una persona que pide un préstamo El código postal de su domicilio Los años de devolución del préstamoSolo 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
  48. 48. Optimizaciones ComparabilidadImplementaciónProblemaDaikon admite un índice de comparabilidad en cada variable Pero no puede calcularse estáticamente por XPath Analizar comparabilidad de campos accedidos en tiempo de ejecuciónSoluciónAmpliar los registros de ActiveBPEL con los tipos abstractos M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 43 / 67
  49. 49. Optimizaciones ComparabilidadImplementaciónProblemaDaikon admite un índice de comparabilidad en cada variable Pero no puede calcularse estáticamente por XPath Analizar comparabilidad de campos accedidos en tiempo de ejecuciónSoluciónAmpliar los registros de ActiveBPEL con los tipos abstractos M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 43 / 67
  50. 50. Optimizaciones ComparabilidadAlgoritmoSe 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 not Predicados de filtrados de conjuntos de nodosEjemplo: ( 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
  51. 51. Optimizaciones ComparabilidadFichero de declaraciones de la metabúsqueda simplificadoDECLAREGoogleSearch . query xsd : s t r i n g String 6inputVariable . language xsd : s t r i n g String 3i n p u t V a r i a b l e . query xsd : s t r i n g String 6 M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 45 / 67
  52. 52. Optimizaciones ComparabilidadResultados en la metabúsquedaComparabilidad Reducción de número de invariantes (≈ −10 %) Se eliminan invariantes no informativos Ej, 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
  53. 53. Optimizaciones ComparabilidadFiltrado de variables no usadasProblemática con ámbitos de variables en WS-BPELLa colaboración entre actividades es mediante variables compartidas Las variables son accesibles en muchos PP Pero solo se suelen usar ciertos campos en algunos de ellosSolució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
  54. 54. Optimizaciones ComparabilidadFiltrado de variables no usadasProblemática con ámbitos de variables en WS-BPELLa colaboración entre actividades es mediante variables compartidas Las variables son accesibles en muchos PP Pero solo se suelen usar ciertos campos en algunos de ellosSolució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
  55. 55. Optimizaciones ComparabilidadFiltrado de variables no usadasProblemática con ámbitos de variables en WS-BPELLa colaboración entre actividades es mediante variables compartidas Las variables son accesibles en muchos PP Pero solo se suelen usar ciertos campos en algunos de ellosSolució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
  56. 56. Optimizaciones ComparabilidadResultados en la metabúsquedaFiltrado de variables Muy agresivo: ≈ −90 % registros de variables y de invariantes Reduce significativamente el tiempo de ejecución (≈ −70 % a −80 %) M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 48 / 67
  57. 57. Optimizaciones Restricciones XML SchemaProblemáticaRestricciones XML SchemaXML Schema permite definir restricciones sobre las variables arbóreas:longitudes máximas o mínimas, listas de valores válidos, etcProblemaSe infieren como invariantes: no aportan información y consumen tiempoCon correspondencia por división se multiplica el problemaSolució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
  58. 58. Optimizaciones Restricciones XML SchemaProblemáticaRestricciones XML SchemaXML Schema permite definir restricciones sobre las variables arbóreas:longitudes máximas o mínimas, listas de valores válidos, etcProblemaSe infieren como invariantes: no aportan información y consumen tiempoCon correspondencia por división se multiplica el problemaSolució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
  59. 59. Optimizaciones Restricciones XML SchemaFichero de declaraciones ampliadoDECLARESmallAmountLowRisk : : : ENTER assessorOutput . r i s k RiskType String 2 M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 50 / 67
  60. 60. Optimizaciones Restricciones XML SchemaFichero de declaraciones ampliadoDECLARESmallAmountLowRisk : : : ENTER assessorOutput . r i s k R i s k T y p e # minlength=1, maxlength=1, values=["high", "low"] String 2 M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 51 / 67
  61. 61. Optimizaciones Restricciones XML SchemaResultados en la metabúsquedaRestricciones XML Schema Con aplanado resultados muy similares Con división desaparecen de 600 a 9.000 invariantes (≈ −30 %) M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 52 / 67
  62. 62. ExperimentosÍndice1 Introducción2 Invariantes dinámicos en WS-BPEL3 Optimizaciones4 Experimentos5 Conclusiones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 53 / 67
  63. 63. ExperimentosComposicionesSe han realizado experimentos con Mercado de compraventa: 53 instrucciones, 3 variables Préstamo (2 versiones): ≈ 110 instrucciones, 6 variables Metabúsqueda (2 versiones): ≈ 600 instrucciones, 20 variablesEstructuraBasados en los realizados por Ernst M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 54 / 67
  64. 64. ExperimentosCasos de prueba aleatoriosObjetivoDemostrar la convergencia de Takuan usando casos de prueba aleatoriosEstructura Se generan 5 casos de prueba aleatorios, y se ejecuta en Takuan Se añaden al conjunto 5 más y se ejecutan los 10 Se añaden al conjunto 10 más y se ejecutan los 20 . . . hasta que la salida se estabilizaSe comparan los resultados del conjunto más completo con los demás M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 55 / 67
  65. 65. ExperimentosCasos de prueba con distintas coberturasObjetivoDemostrar la convergencia de la GDI con Takuan usando casos de pruebacon distinta cobertura del flujo de ejecuciónEstructura Cinco conjuntos casos de prueba de igual tamaño pero con distintas coberturas Aleatorio Instrucciones (dos conjuntos) Ramas Caminos 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
  66. 66. ExperimentosAnálisis de resultadosAleatorios Estabilización con distinta cantidad de casos de prueba: En metabúsqueda se necesitaron de 100 a 500 casos de prueba En composiciones pequeñas menos de 50Por coberturas Mejora progresiva de resultados al mejorar la cobertura: Diferencias en invariantes (sobre 66): 7, 5, 3 y 2 Poca diferencia entre cobertura por ramas y de caminosTanto 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
  67. 67. ExperimentosAnálisis de resultadosAleatorios Estabilización con distinta cantidad de casos de prueba: En metabúsqueda se necesitaron de 100 a 500 casos de prueba En composiciones pequeñas menos de 50Por coberturas Mejora progresiva de resultados al mejorar la cobertura: Diferencias en invariantes (sobre 66): 7, 5, 3 y 2 Poca diferencia entre cobertura por ramas y de caminosTanto 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
  68. 68. ConclusionesÍndice1 Introducción2 Invariantes dinámicos en WS-BPEL3 Optimizaciones4 Experimentos5 Conclusiones M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 58 / 67
  69. 69. Conclusiones ResumenObjetivos cumplidos Adecuación de la GDI para WS-BPEL Diseño de una arquitectura para la GDI en WS-BPEL Se ha implementado Takuan, el único generador dinámico de invariantes para WS-BPEL hasta la fecha Takuan recibe una composición y un conjunto de casos de prueba, y genera invariantes automáticamente Se ha probado su utilidad para detectar errores en una composición Incorpora optimizaciones para eliminar invariantes no deseables Se ha estudiado su estabilidad con entrada aleatoria y según cobertura M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 59 / 67
  70. 70. Conclusiones ResumenAportaciones Integración en ActiveBPEL de funciones XPath de registro Desarrollo de dos modelos de correspondencia XML Schema a Java Implementación optimizaciones específicas: Comparabilidad basada en expresiones de las ejecuciones Registro de campos de variables (y PP) según uso Ampliación de Daikon para que acepte invariantes conocidos: aplicado a XML Schema, válido para otros lenguajes M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 60 / 67
  71. 71. Conclusiones Trabajos futurosTrabajos futuros Implementar otras correspondencias XML Schema para composiciones donde proceda usarlas Estudio cualitativo del comportamiento del sistema: tamaño de entrada, invariantes, filtrado de variables, etc. Comparación con otras propuestas de prueba para WS-BPEL Ampliar el estudio a tecnologías relacionadas: BPMN, BPELScript, BPEL4People, etc. M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 61 / 67
  72. 72. Conclusiones ProducciónPrincipales publicacionesRevista JCR (enviado):Congresos internacionales: M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 62 / 67
  73. 73. Conclusiones ProducciónOtros méritos Capítulo de libro Comité científico WS-BPEL Software libre y aportaciones al Estancia en Moscú, Rusia proyecto BPELUnit M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 63 / 67
  74. 74. Conclusiones ProducciónCaptura del plugin de Takuan para Netbeans M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 64 / 67
  75. 75. Conclusiones ProducciónCaptura de IdigInBPEL M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 65 / 67
  76. 76. Conclusiones PreguntasTrabajo financiado por el Programa Nacional de I+D+I del Ministerio de Educación y 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 los resultantes 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
  77. 77. Conclusiones LicenciaEsta presentación es libre© Manuel Palomo Duarte 2011, excepto los logotiposEste 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 obra hacer obras derivadasBajo 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 una licencia igual a ésta. M. Palomo (UCA) Invariantes dinámicos para composiciones WS-BPEL 67 / 67

×