XML-Intensive software development
Fecha
2016-02-04Autor
Ibañez Anfurrutia, Felipe
Metadatos
Mostrar el registro completo del ítemResumen
1. IntroducciónXML es un lenguaje de meta-etiquetas, es decir, puede ser utilizado fundamentalmentepara crear lenguajes de etiquetas . La presencia de XML es unfenómeno generalizado. Sin embargo, su juventud hace que los desarrolladores seenfrentan a muchos desafíos al utilizar XML en aplicaciones de vanguardia. Estatesis enfrenta XML a tres escenarios diferentes: intercambio de documentos,Líneas de Producto Software (LPS) y Lenguajes eSpecíficos de Dominio (LSD).El intercambio digital de documentos es una de las aplicaciones mas importantesde XML. Sin embargo, los documentos de negocios con frecuencia tienendatos derivados, es decir, datos que se calculan a partir de otros datos. Aquí, nosenfrentamos a la cuestión de cómo ampliar el XML Schema para capturar datosderivados. Esta tesis propone un nuevo vocabulario: XDerive. XDerive permiteexpresar funciones derivadas teniendo en cuenta las especificidades de XML.Por otro lado, las LPS ofrecen un enfoque para desarrollar una familia deproductos de software mediante la reutilización. ¿Qué pasa si estos productos serealizan como documentos XML? La tesis aborda cómo ampliar la programaciónorientada a características (un enfoque para el desarrollo de LPS).También considera XML en el desarrollo Web. En concreto, abordamos eldesarrollo de aplicaciones web utilizando lenguajes específicos de dominio. Ennuestro caso, el dominio es de los sitios web orientados a la navegación de contenidosestático. Con este fin, diseñamos el lenguaje XLeaflet. Una característicadistintiva de XLeaflet es su arquitectura: ¿thick-browser¿. Objetivo: conseguiruna reducción importante en el tráfico de red.1Estas tres áreas (es decir, de intercambio de documentos, LPSs y LSDs) sirvencomo "pruebas de resistencia" para evaluar ¿la ductilidad¿ de los conceptosy la tecnología XML para hacer frente a entornos tan heterogéneos. Los siguientescapítulos describen en más detalle los tres escenarios que se plantean parael estudio.2. XML para el intercambio de documentosEl intercambio de documentos es una aplicación destacada en XML. Un documentode negocio es ¿una unidad de información de negocio que se intercambiaen una transacción de negocio¿ [5]. Pedido, factura o formularios de envío sontodos ejemplos de documentos de negocio que recogen datos que dan soporte acierta función de negocio, sin tener en cuenta como dichos datos son finalmentealmacenados.Emergen estándares para normalizar dicha descripción: UBL[3], EDIFACT[2],X12[1], IDA[5], por enumerar algunos. XML se está convirtiendo en el estándarpara la descripción de documentos en el escenario B2B. XML Schema estáganando una amplia aceptación como lenguaje de esquema para definir la estructurade dichos documentos. De echo, IDA utiliza XML Schema.Los documentos de negocio frecuentemente contienen datos derivados, es decir,datos que son calculados mediante otros datos. Por ejemplo, la cantidadTotalde un pedido puede ser obtenido mediante la suma del coste por cada articuloincluido en el pedido menos algunos descuentos aplicables. Tales funcionesde derivación dan soporte a importantes políticas de negocio, incluyendo lostérminos y las condiciones del contrato (p.ej. políticas de descuento de precio),provisiones de servicio (p.ej. políticas de devolución), o servicios de alrededor(p.ej. políticas de plazos de entrega para el pedido). Tales políticas de negocioson el contenido de los contratos entre socios, y se pueden encontrar, normalmente,en catálogos, establecimientos comerciales y mercados, incluso así comoen las ofertas y demandas comunicadas durante las negociaciones, adquisicionesy subastas.La pregunta de investigación es:¿cómo se puede extender el XML Schema para proveer datos derivados?A pesar de su amplia presencia, XML Schema no posee todavía una mecanismopara describir elementos derivados. Esto conlleva a que las funciones derivadas2sean codificadas dentro de las aplicaciones que procesan los documentos. Estatesis propone XDerive, un nuevo lenguaje basado en reglas para extender laespecificación del XML Schema con elementos derivados. El resultado final ofrecedos herramientas: (i) un procesador de XML con conocimientos de derivación y(ii) una herramienta que explica el proceso de derivación de los datos.3. XML en las Líneas de Producto SoftwareHasta ahora, la mayoría de las aplicaciones Web son concebidas una a una.Un estudio reciente indica que el indice de clonación (i.e. repetición de códigopor toda la aplicación) es del 17-63% dentro de las aplicacionesWeb de una mismaempresa [7]. Esta clonación evidencia de un tema común existente, aunqueimplícita, por toda la aplicación, y confirma una intuición sentida en la mayoríade las empresas: código similar entre las aplicaciones. Estas similitudes sonsoportadas de distintas formas como IFDEFs, ficheros de configuración, comandosde instalación o copias de software clonadas à la ¿copia-pega-modifica¿. Sinembargo, estas soluciones no escalan bien y pueden complicar el mantenimientoa medida que el número de variaciones incremente.Las técnicas de Líneas de Producto Software (LPS) se esfuerzan por hacerexplícito está recurrente funcionalidad de forma que la reutilización es facilitadasin poner en compromiso el mantenimiento. Por lo tanto, puede ser apropiadoadmitir las aplicacionesWeb como producciones de una LPS. En vez de construircada producto desde cero, primero se construye la línea de producto, y luego, seconsiguen los productos mediante la linea de producto. Utilizando las LPS paramanejar las variaciones en sus códigos, las empresas están anunciando reduccionesde primera magnitud en tiempo-de-mercado, estructuras de ingeniería,indices de errores y coste. 1.Una de las técnicas para soportar las variaciones es el refinamiento en pasossucesivos [4]. El refinamiento en pasos sucesivos es un paradigma poderosopara desarrollar programas complejos desde un programa simple añadiendo deforma incremental detalles. Esta aproximación trata de abandonar las practicas¿clone&own¿ actuales provocando la reutilización de las partes comunes y separandolas partes variables y cambiables como programas deltas. El producto finalse obtiene mediante composición: la parte común es enriquecida con programasdeltas que desarrollan las variaciones para el producto en cuestión.1Remitir a www.softwareproductlines.com/benefits/benefits.html para una explicación detallada.3Este trabajo encara el uso de deltas (i.e. refinamientos) como técnica demodularización para artefactos XML. Merece la pena mencionar que el refinamientodepende de los artefactos que van a ser refinados, p.ej. los artefactos Javano son necesariamente refinados de la misma forma que los artefactos XHTML.Cuando el artefacto es ¿.java¿, un refinamiento de clases puede introducir nuevosatributos, métodos y constructores en la clase de destino, así como extendero sobrescribir métodos y constructores existentes en dicha clase [4]. Pero, ¿quésignifica refinar un artefacto XML? ¿Significa que arbitrariamente podemos insertaro eliminar cualquier nodo de cualquier sitio en un árbol de un documentoXML?Las preguntas de investigación son:¿cómo se introducen deltas en artefactos XML?¿cómo se definen, componen y validan los deltas XML?4. XML en el desarrollo WebEl desarrollo de aplicaciones Web está sufriendo un fuerte cuello de botellacomo una brecha entre las herramientas de implementación existentes y el aumentode los requisitos de las aplicaciones. Pero estas dificultades son probablesque se conviertan más rigurosas cuando el experto de la web va a tener que enfrentarsea su mantenimiento. Esto se siente especialmente urgente en el área delcomercio electrónico. En el mundo del comercio electrónico actual, las empresasdeberían de adaptarse a los cambios de condiciones y la rápida evolución. Sinembargo, es una experiencia frustrante ver cuantas veces el cuello de botella delsitio web disminuye y restringe la evolución de la empresa que el sitio web estásupuestamente sirviendo.En respuesta a las necesidades anteriormente descriptas, distintos proyectosse han puesto en marcha con el objetivo de proveer unas guías de diseñoy herramientas de soporte para un construcción sistemática de sitios web. Unade las guías más frecuentemente citada es separar los requisitos en aspectos decontenido, aspectos de navegación y aspectos de presentación utilizando un enfoquebasado en modelos [6]. El objetivo de dicho enfoque es buscar modelosdeclarativos, preferiblemente ortogonales, que permitan a los desarrolladores especificardeclarativamente un aspecto especifico de la aplicación sin tener queinmediatamente sumergirse en los detalles de implementación. Entonces, un diseñoes conforme a un conjunto de esquemas (i.e. instancias de modelos) los4cuales describen los distintos aspectos de la aplicación. La declaravilidad y laortogonalidad acaba con el mantenimiento: la separación de aspectos y sus especificacionesdeclarativas permiten fácilmente modificar un esquema mientrasminimiza el impacto en el resto de la aplicación. Los Lenguajes eSpecíficos deDominio (LSD) son normalmente orientados hacía un especifico dominio o aplicación,ofreciendo solamente un juego de notaciones y abstracciones restringidas.Por lo tanto, esta visión de LSD no suele se posible en general, pero podríavaler para unos específicos dominios. Específicamente, consideramos sitios webestáticos, orientado a contenido, de aquí en adelante ¿sitios web de folleto¿(¿leaflet websites¿). Sitios web de conferencias, catálogos de productos o concontenido acerca de cursos son los tipos de sitios web que abordamos. Aquí,el reto se basa en aspectos de presentación y navegación que dar soporte a lafuncionalidad transaccional (p.ej. compras, matriculas y similares)La pregunta de investigación es:¿se podría desarrollar un ¿sitio web de folleto¿ con la única ayudade un LSD?5. ConclusiónEsta tesis propone diferentes soluciones para superar las limitaciones consideradasen los distintos escenarios. En general, se promueve un enfoque centradoen documentos XML para el desarrollo de la lógica de las aplicaciones. Específicamente,XDerive es un nombre de espacios que extiende un XML Schema paradar soporte a datos derivados en XML. Además, ofrece un procesador de XMLcon funcionalidad de derivación, extendiendo un procesador JAXP existente.XAK es un lenguaje para definir XML deltas, además de una herramienta decomposición para utilizar documentos XML en Líneas de Producto Software(LPS) que siguen el paradigma de Desarrollo de Software Orientado por Características.Finalmente, XLeaflet es un LSD para describir distintos aspectos deun ¿sitio web de folleto¿ (¿leaflet website¿). Su característica principal essu arquitectura: thick-browser, el navegador web es el encargado de procesar elleaflet, lo cual implica encargarse de controlar tanto la navegación como generarlas páginas web. La ventaja es que descarga la carga del servidor.5References[1] ASC X12 The Accredited Standards Committee Home Page, 2004. Availableonline at http://www.x12.org.[2] EDIFACT: Home Page, 2004. Available online athttp://www.unece.org/cefact/edifact/welcome.html.[3] Online community for the Universal Business Language (UBL). OASISStandard, 2004. Available online at http://ubl.xml.org.[4] D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling step-wise refinement.IEEE Transactions on Software Engineering, 30(6):355¿371, June 2004.[5] European Comission. IDA e-procurement protocolXML schemas initiative, 2004. Available online athttp://europa.eu.int/ISPO/ida/export/files/en/1996.pdf.[6] F. Paterno and C. Mancini. Model-Based Design of Interactive Applications.ACM Intelligence, pages 27¿37, Winter 2000.[7] D. C. Rajapakse and S. Jarzabek. An investigation of cloning in web applications.In Proceedings of the 5th International conference on Web Engineering(ICWE¿05), Lecture Notes in Computer Science, pages 252 ¿ 262, Sydney,Australia, 2005. Springer.