XMI: XML Metadata Interchange Pérez J. García M. Facultad de Informática – Universidad Politécnica de Valencia email: jepebe0@yahoo.es, magarver@inf.upv.es Resumen XMI es el nombre que recibe el estándar para el intercambio de metamodelos usando XML. Su principal objetivo es permitir un intercambio de metainformación entre herramientas de modelado basadas en UML y repositorios de metainformación basados en MOF en heterogéneos entornos distribuidos. El hecho de incluir tres estándares como XML, UML y MOF, permite a los desarrolladores de sistemas distribuidos compartir modelos de objetos y otra información sobre Internet. Al utilizar XML permite una gran flexibilidad en la estructura de la información, ya que esta no se especifica como sucede en HTML, lo que permite tener más de una vista de un documento al estar separado el contenido de la estructura. XMI es el único estándar para el intercambio de información en entornos de trabajo distribuido donde se colabora para conseguir un objetivo común. La figura 1 muestra como tiene lugar el intercambio con XMI: 1 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia Figura 1. Intercambio con XMI [5]. La arquitectura de XMI permite la simplificación de la comunicación entre aplicaciones de diferentes tecnologías ahorrando mucho trabajo y tiempo, además potencia la reutilización de objetos y componentes. 2 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia 1. Introducción XMI nació de la propuesta realizada por IBM, Unisys, y otras industrias líderes para realizar un nuevo estándar que combinase los beneficios de XML para la definición, validación y compartición del formato de los documentos en la web con los beneficios de UML. UML proporciona a los desarrolladores de aplicaciones un lenguaje común para poder especificar, visualizar, construir y documentar objetos distribuidos y modelos de negocio. XMI es un estándar de OMG para el intercambio de información y metainformación entre herramientas, repositorios y aplicaciones, que proporciona un formato de intercambio para entornos distribuidos. Comenzó con la metainformación de modelado y programación y se ha ido expandiendo a datawarehouse, componentes, etc. Intenta dar a los desarrolladores trabajo con tecnología de objetos que permite cambiar la programación de datos en Internet hacia un estándar. La figura 2 muestra un posible escenario de intercambio usando XMI: Figura 2. Escenario de intercambio [5]. 3 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia XMI fue presentado en Junio del 98 como el pilar del intercambio de modelos de información, actualmente ha sido adoptado como una recomendación tecnológica de OMG desde el 23 de marzo de 1999 [4]. La versión de XMI 1.1 apareció el 1 de febrero de 2000, actualmente se está desarrollando la versión 1.2. [5] y se está trabajando para que XMI permita la generación automática en XML del DTD para cada metainformación del modelo. Esta ampliación de XMI permite la generación de DTD’s para cubrir otros dominios como DataWarehouse, desarrollo basado en componentes y metainformación web[6]. Además está intentando ser un formato “stream” para poder almacenar ficheros de sistemas tradicionales, información de Internet de BD o repositorios[4]. El objetivo del presente trabajo es dar a conocer está nueva tecnología y presentar su uso actual, centrándose en UML. Su estructura es la siguiente: en primer lugar se presenta el estándar XML y el estándar XMI en los apartados 2 y 3 respectivamente. En el apartado 4 se realiza una breve descripción de la arquitectura XMI. Por otro lado, en el apartado 5 se explicitan las ventajas que ofrece XMI. Finalmente en el apartado 6 se estudia brevemente el DTD para UML y en el apartado 7 se presentan las conclusiones obtenidas tras la realización del trabajo. 2. XML(eXtensible Markup Language) El estándar XML surge como una necesidad de estandarizar la definición de lenguajes de marcas. Tiene su base en SGML (Standard Generalized Markup Language) y en la actualidad se ha convertido en la forma ideal de realizar el intercambio de información. 4 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia Es un metalenguaje de marcado que permite la definición de tus propias marcas y el intercambio de datos a través de la red. Es una versión de SGML abreviada, optimizada para su uso en Internet. Por ello puede considerarse una ampliación de HTML, ya que aprovecha sus ventajas y permite realizar muchas cosas más. XML está compuesto por cuatro partes: - Documentos XML XML DTD (Document Type Definition) XML parser Aplicaciones XML Su enlace con la web promete un lenguaje común de etiquetas, rompiendo la necesidad de trabajar obligatoriamente dentro de una única infraestructura. XML ofrece la posibilidad de definir un conjunto de reglas que definan la estructura de la información, esto se consigue con el DTD mediante el uso de etiquetas. Por eso proporciona una estructura rígida a nivel sintáctico que permite que sea representada en forma de árbol toda la información que contiene, más conocido como DOM (Document Object Model), y que los documentos tengan poca ambigüedad. Por otro lado es sencillo y flexible, en cuanto a definición de etiquetas nuevas se refiere y al hecho de no estar obligado a que un documento XML esté asociado a un DTD. Una de las principales características es que etiqueta e identifica el contenido, olvidándose en un principio de la presentación. Después, la información incluida en un documento XML puede ser utilizada por una página XSL (Extensible Style Sheet Language) para presentarla en un navegador. Esto permite tener más de una vista de un documento, porque tiene separado el contenido de la presentación. 5 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia XML va a permitir la comunicación entre las máquinas, consiguiendo que un mismo documento se pueda ver de distinta forma desde varias máquinas, sólo con que cada máquina tenga su StyleSheet adecuada. No se cambia ni el contenido ni la estructura, tan sólo su presentación. Al ser un lenguaje tan flexible permite que un documento pueda usarse para una gran variedad de propósitos. Por ejemplo, la información puede utilizarse para leerla y después mostrársela al usuario, para guardarla en una BD, o usarla en otra aplicación. Por otro lado, facilita el desarrollo de aplicaciones para navegar por la web, buscadores, y el intercambio de datos, generalmente entre BD, basándose en el DTD. Pero no es algo que pretenda reemplazar a los SGBD’S, simplemente facilita el intercambio de información y la cooperación entre las empresas mediante el comercio electrónico(business-to-business), etc. A parte de BD también permite intercambiar información como documentos de correo, documentos de texto y cualquier tipo de datos existente en cualquier corporación. Un DTD es el lugar donde se realiza la definición de la estructura y el contenido de un tipo de documento. En un DTD de XML se definen los elementos, atributos y entidades que van a formar un documento, cómo se estructuran y relacionan. De esta forma se especifica los elementos y atributos que pueden usarse dentro de un documento XML y especifica que caracteres se usarán para marcar el texto. Un DTD define un conjunto de reglas que pueden asociarse a un conjunto de documentos XML que se han creado usando la plantilla que defina el DTD, esto es posible porque la estructura y el contenido van separados. Puede usarse para crear y validar documentos XML de acuerdo con las reglas que se han definido en el DTD. Es el lugar donde se realiza la definición de la estructura y el contenido de un tipo de documento. 6 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia El documento XML es el que incluye toda la información delimitada mediante marcas y que se envía a través de la web para después ser utilizado de la forma deseada.Cuando un documento XML cumple la especificación del lenguaje XML se dice que es un documento XML bien formado, y en caso de que esté asociado a un DTD, si cumple la sintaxis definida en este, se dice que es un documento XML valido. Esta información del documento la proporcionan los parsers. Los documentos XML pueden ser leídos por aplicaciones para utilizar su información de la forma que crean conveniente, esto se consigue mediante parsers. Por lo tanto, XML permite crear aplicaciones con datos compartidos. Un parser es la herramienta principal de cualquier aplicación XML. Permite comprobar si los documentos están bien formados o válidos. Es un programa de bajo nivel que lee un documento XML y almacena tanto las etiquetas como el contenido que ha leído en una estructura. El hecho de que las etiquetas de XML tengan una carga semántica, es decir, que proporcionen información sobre el texto que contienen, hace que sirvan para realizar consultas y búsquedas sobre el documento. Los documentos tienen poca ambigüedad, ya que tienen una fuerte estructuración, de ahí que se mejore la búsqueda considerablemente. La información de este apartado se ha conseguido de [9,10,11,12]. 3. XMI (XML METADATA INTERCHANGE) El principal objetivo de XMI es permitir un intercambio de metainformación entre herramientas de modelado, basados en UML, y repositorios de metainformación, basados en MOF, en heterogéneos entornos distribuidos. Realizando este intercambio mediante streams o ficheros con formato estándar basado en XML. 7 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia UML es un estándar que define un lenguaje de modelado orientado a objetos que es soportado por una gama de herramientas de diseño gráfico y MOF es un estándar que define un marco de trabajo para definir modelos de metainformación y proporciona herramientas con interfaces programadas para almacenar y acceder a metainformación en un repositorio. Es por esto, que el hecho de incluir tres estándares como XML, UML y MOF, permite a los desarrolladores de sistemas distribuidos compartir modelos de objetos y otra información sobre Internet. De esta forma se consigue un modelado, una gestión y una publicación de metainformación estándar a través de la web, utilizando UML y MOF para el diseño de metamodelos y XML para transferir la información. El DTD especifica el permiso para la transferencia y la verificación de: - Modelos basados en UML utilizando el DTD de UML. - Metamodelos y sus instancias basados en MOF, permitiendo el uso de XMI en nuevos dominios como DataWarehouse, componentes, etc. La figura 3 muestra la integración de estándares que realiza XMI. Figura 3. Integración de estándares. “XMI es el único estándar para el intercambio de información en un entorno de desarrollo de colaboración. Las compañías obtienen una mayor productividad en 8 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia el desarrollo de aplicaciones. Los desarrolladores corporativos pueden desarrollar modelos que pueden ser distribuidos y usados por varios grupos, incluso en diferentes entornos de desarrollo.”( Emilie McCabe, Vice President, IBM VisualAge Tools Marketing and AIM Services ) La figura 4 muestra que el intercambio se puede producir de arriba abajo o bien de abajo a arriba: Figura 4. Tipos de intercambios [5]. "XMI dará a las compañías la seguridad de poder reusar metainformación a través de fragmentos de proyectos de desarrollo de gran escala incluyendo código, información de arquitectura y de gestión”.( JP Morgenthal, President & Director of Research, NC Focus ) Finalmente, otras de sus características es que permite el intercambio de objetos y de SW activo a través de entornos de desarrollo de aplicaciones de análisis de objetos OMG y facilita el diseño. 4. ARQUITECTURA DE XMI En la figura 5 se representa la comunicación de seis aplicaciones de diferentes tecnologías usando XMI y sin utilizarlo, en el primer caso sólo son 9 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia necesarios seis puentes, mientras que en el segundo se necesitan 30 puentes de conexión [3]. Des ign Devel opme nt Data Tools bas XMI Soft war eRep Ass osito ets Repry orts App1 App6 App5 App2 App3 App4 e Sch ema Figura 5. Comunicación de seis aplicaciones de diferentes tecnologías. La figura 6 muestra los diferentes niveles que permite integrar el uso de XMI. Hace posible usar la herramienta de diseño X, lenguaje IDE Y, BD Z, etc. [3]. Figura 6. Niveles que integra XMI. Esta arquitectura, de forma completa, ofrece una amplia gama de ofertas de implementaciones para desarrolladores de herramientas, repositorios y marcos de trabajo objetuales. El uso de MOF para definir y manipular metamodelos mediante una programación que usa una granularidad tan buena como la que nos ofrecen las 10 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia interfaces de CORBA. Este enfoque es influenciado por la fuerza de la infraestructura de objetos distribuidos de CORBA[13] 5. VENTAJAS DE XMI Una de las ventajas que proporciona XMI es el hecho de trabajar con Internet y que está construido en base a estándares industriales como HTML, XML, UML, MOF, etc.[3]. La figura 7 muestra la relación entre dominios y plataformas según OMG: Figura 7. Relación entre dominios y plataformas según OMG [5]. XMI evita la creación de distintos formatos, cada cual especificando la herramienta de un fabricante, siendo independiente de las herramientas, repositorios y aplicaciones en las que se haya generado la información. Haciendo posible que distintos productos sean compatibles, ya que permite que compartan su información. “Para los sistemas integrados y sus usuarios, XMI promete una importante mejora en la calidad y accesibilidad de modelos, permitiendo que objetos y componentes puedan ser reutilizados”. (Cris Kobryn) 11 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia XMI evita la necesidad de utilizar una única infraestructura permitiendo al usuario elegir la plataforma, el fabricante, el lenguaje y la herramienta con la que desee trabajar, ya que su información podrá representarse y transferirse igualmente. La figura 8 muestra un esquema del uso de XMI en el intercambio de objetos entre aplicaciones: Figura 8. Intercambio de objetos entre aplicaciones [5]. XMI ofrece una forma fácil de empaquetar la información y la metainformación. Siendo más fácil de usar y comprender que las tradicionales tecnologías de metainformación (relacional y repositorios de objetos). Es fácil de implementar en un tiempo récord proporcionando una tecnología y un middleware neutral[3]. Es un enlace con la web que promete un lenguaje común mediante etiquetas. Lo presentado en este apartado se ha extraído desde [3,7,8]. 6. ESPECIFICACIÓN DEL DTD DE XMI PARA UML El estándar XMI de OMG especifica una estructura para el intercambio de modelos usando XML. El DTD de XMI generado para UML es un mecanismo físico para el intercambio de modelos UML de acuerdo con el metamodelo de UML. 12 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia Uno de los principales objetivos que persigue este DTD es el avance de la industria permitiendo la interoperabilidad entre herramientas de modelado OO, consiguiéndolo con XMI. El DTD de XMI debería usar como normativa el intercambio de modelos UML por medio de flujos o ficheros. Cada DTD usado por XMI debe satisfacer los siguientes requisitos[1]: - Todos los elementos XML definidos por la especificación XMI deben ser declarados en el DTD. - Cada metamodelo construido (clase, atributo y asociación) debe tener una correspondiente declaración de elemento. - Los elementos XML que representan extensiones hacia el metamodelo deberían ser declarados en el DTD interno o externo [1]. La figura 9 muestra el proceso de validación en XMI: Figura 9. Proceso de validación [5]. - Fragmentos del DTD para el modelo especificado de UML(V.1.3): Antes de ver una pequeña parte del DTD se ha de tener en cuenta lo siguiente para poderlo comprender: XMI.element.att: Define los atributos que a cada elemento XML le corresponden de acuerdo con un metamodelo de clase para cumplir la especificación XMI. ID Identificador, Entidad Interna: no se repite su Referencia información valor dentro del fichero Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia 13 <!ENTITY %XMI.element.att ‘xmi.id ID # IMPLIED xmi.label CDATA # IMPLIED xmi.uuid CDATA #IMPLIED ‘ > CDATA Valor Alfanumérico IMPLIED Opcional XMI.link.att: Define los atributos que a cada elemento XML le corresponden de acuerdo con un metamodelo de clase para permitir funcionar como un simple Xlink para hacer referencia a otros DTD’s(constructores de modelos) que no estén en otros ficheros XMI. <ENTITY %XMI.link.att ‘xml:link CDATA #IMPLIED inline (true | false) #IMPLIED actuate (show | user) #IMPLIED href CDATA #IMPLIED OR role CDATA #IMPLIED title CDATA #IMPLIED show (embed | replace | new) #IMPLIED behavior CDATA #IMPLIED IDREF Referencia a xmi.idref IDREF #IMPLIED una atributo xmi.uuidref CDATA #IMPLIED ‘> identificador Una vez realizadas estas dos consideraciones podemos proceder a presentar el DTD para una clase UML: <!ELEMENT name (#PCDATA | XMI.reference)*> <!ELEMENT isActive EMPTY> Elemento <!ATTLIST isActive Lista de posibles valores para el xmi.value(true | false)> #REQUIRED elemento > Uno obligatoriamente <!ELEMENT instance ComponentInstance| (Instance | Object | LinkObject | DataValue | 14 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia NodeInstancia | Use_Cases.UseCaseInstance > Lista de posibles elementos que pueden ser una instancia Uno opcionalmente <!ELEMENT Class (name?, visibility?, isSpecification?, isRoot?, isLeaf?, isAbstract?, isActive?, XMI.extension*, constraint*, stereotype?, elementReference*, collaboration*, partition?, templateParameter3*, presentation*, targetFlow*, sourceFlow*, comment*, namespace?, clientDependency*, supplierDependency, behavior*, binding?, generalization*, specialization*, elementImport*, powertypeRange*, templateParameter2*, participant*, createAction*, instance*, classifierRole*, classifierInState*, taggedValue*, objectFlowState*, templateParameter*, ownedElement*,feature*)?> <!ATTLIST Class XMI.element.att; XMI.link.att;> Cero o más Una vista más amplia o genérica se podría ver con la representación de la herencia que nos ofrece el DTD de UML: <!ELEMENT Child (GeneralizableElement | Mechanisms.Stereotype | Collaborations.Collaboration | Package | Subsystem | Model | Classifier | Class AssociationClass | DataType | Interface | Component | Node | Signal | Exception | UseCase | Actor | ClassifierRole | ClassifierInState| Association | AssociationRole)?> <!ELEMENT Parent (GeneralizableElement | Mechanisms.Stereotype | Collaborations.Collaboration | Package | Subsystem | Model | Classifier | Class AssociationClass | DataType | Interface | Component | Node | Signal | Exception | UseCase | Actor | ClassifierRole | ClassifierInState| Association | AssociationRole)?> <!ELEMENT Generalization (name?, visibility?, isSpecification?, discriminator?, XMI.extension*, namespace?, clientDependency*, constraint*, supplierDependency, presentation*, targetFlow*, sourceFlow*, templateParameter3*, binding?, comment*, elementReference*, templateParameter2*, stereotype?, behavior*, classifierRole*, collaboration*, partition*, elementImport*, child?, parent?, powertype?, taggedValue*)?> 15 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia <!ATTLIST Generalization XMI.element.att; XMI.link.att;> 16 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia 7. Conclusiones Después de haber realizado este trabajo, las conclusiones que se pueden obtener son: - XMI facilita el intercambio de información y metainformación, abriendo un amplio abanico de posibilidades al trabajo en equipo, pudiéndose abarcar desarrollos muy complejos entre diversos grupos de trabajo, y potenciando el trabajo distribuido, permitiendo nuevas colaboraciones entre sectores con diferentes tecnologías. - La existencia de XMI proporciona de una gran independencia a la decisión de qué tecnología, herramienta, lenguaje, etc. utilizar, ya que solventa todos los problemas de intercambio de información existentes. Pero surgen dudas respecto a qué ventajas ofrece que no pudiera ofrecer XML. Debido a que XMI está naciendo en estos momentos, muchos de sus aspectos no están claramente especificados y no se dispone de una información ampliamente detallada en la que poder profundizar, pudiendo llegar a conclusiones precipitadas como podría ser que XMI son DTD’s específicos para el envío de modelos y metamodelos. Sin embargo hay ciertos aspectos que le dan otras ventajas y diferencias respecto a XML, y es por esto que sería muy interesante investigar a continuación sobre el estándar MOF de OMG y en un futuro profundizar de que forma XMI genera automáticamente los DTD’s de XML basados en la especificación original del metamodelo de MOF. 8. Referencias [1] 98-10-05.pdf [2] UML Versión 1.3 99-06-08.pdf [3] Complete XMI.ppt [4] http://www.cetus-links.org:80/oo_uml.html/xmi.html [5] XMI 00-06-03.pdf 17 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia [6] XMI_Overview http://cgi.omg.org/news/pr99.html#xmi [7] MCD-99 http://cgi.omg.org/news/pr99.html#xmi [8] Framingham, MA, “OMG Members Unite in Support of XMI Technology”, February 5, 1999 [9] http://www.w3.org/XML [10] “TOOLS USA 2000 conference”, Software Serving Society, http://www.tools-conference.com, Santa Barbara, California, USA, 30 Julio 2000 – 4 Agosto 2000 [11] Jake Sturm, “Developing XML Solutions”, Edit. Microsoft, 2000 [12] J.H. Canós,”Curso XML”, Septiembre 2000 [13] 98-10-05.pdf 18 Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia