Towards a framework for making applications provenance-aware
Con el objeto de arrojar luz sobre los datos producidos por los sistemas, el término provenance ha surgido para referirse al conjunto de información que contribuye a la existencia de un dato. La captura de provenance conlleva una serie de beneficios que van desde la eproducibilidad hasta la responsabilidad, incluida la evaluación de la calidad y validez de los datos. A la vista de estos beneficios, resulta natural que el tener en cuenta el provenance desde las primeras etapas del ciclo de desarrollo del software, como la fase de diseño, haya adquirido una importancia crítica para ayudar a los diseñadotes de software a hacer aplicaciones con capacidades de provenance; es decir, aplicaciones con la funcionalidad para responder preguntas sobre el provenance que producen. Sin embargo, los enfoques actuales que consideran el provenance durante la fase de diseño no se integran con las metodologías de ingeniería de software existentes. Esto los hace difíciles de usar en la práctica. UML2PROV es un novedoso entorno de desarrollo orientado a cerrar la brecha entre el diseño de aplicaciones y el diseño de provenance, minimizando la intervención de los ingenieros del software y sin necesidad de que estos tengan conocimientos sobre provenance. Con UML2PROV, los diseñadotes pueden seguir la metodología de ingeniería del software que prefieran para crear los diagramas UML con el diseño de la aplicación, y posteriormente, UML2PROV entra en juego para generar automáticamente: (1) el diseño del provenance que va a ser generado (expresado a través de PROV templates); (2) un modulo software para capturar valores de interés mientras la aplicación esta ejecutándose (codificados como asociaciones variable-valor a las que nos referiremos como bindings). La combinación de los PROV templates con los bindings generará provenance de gran calidad, listo para ser explotado. Por lo tanto, UML2PROV ayudara a los ingenieros del software a hacer aplicaciones con capacidades de provenance. En relación a UML2PROV, esta tesis presenta tres contribuciones principales. Primero, una revisión sistemática de sistemas de provenance, la cual, entre otros resultados, ofrece una taxonomía de seis dimensiones que puede ayudar a los investigadores en el análisis de diferentes sistemas de provenance. Segundo, una definición conceptual de UML2PROV, la cual consiste en (1) un conjunto de 17 patrones rigurosamente definidos y que establecen una correspondencia entre elementos UML y PROV templates; y (2) un conjunto de requisitos que cualquier modulo software de captura de provenance debe satisfacer. Este modulo se integrara dentro de la aplicación para la obtención de bindings. Tercero, una implementación de referencia de UML2PROV basada en técnicas pertenecientes al Desarrollo Dirigido por Modelos. Partiendo de los diagramas UML, esta implementación genera automáticamente tanto los PROV templates como el modulo para obtener bindings. Además, esta implementación de referencia ofrece a los posibles usuarios de UML2PROV mecanismos para configurar la obtención de los bindings de diferentes formas. Por lo tanto, los usuarios pueden elegir el mecanismo que mejor se adapte a sus necesidades, atendiendo aspectos como el sistema de persistencia que deseen utilizar, el coste que supone disponer la captura de provenance en tiempo de ejecución, así como las necesidades de almacenamiento, entre otros. UML2PROV también ha sido evaluado de una forma sistemática. Concretamente, se presenta un análisis de la calidad y la eficiencia del provenance generado por nuestra implementación de referencia, con el objetivo de mostrar beneficios e inconvenientes de utilizar UML2PROV. Este análisis nos ha permitido extraer conclusiones relevantes para la comunidad de ingenieros de software. En particular, como el diseño UML controla tanto el diseño como la captura de provenance, se ha estudiado como diferentes estrategias adoptadas en la fase de diseño UML pueden afectar a aspectos como: la generación del diseño del provenance, la instrumentación de aplicaciones, el mantenimiento de los artefactos que proveen a la aplicación de capacidad de provenance, el coste que supone disponer de dichos artefactos en tiempo de ejecución, así como las necesidades de almacenamiento, y calidad del provenance generado.
Networked Digital Library of Theses and Dissertations