Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria – sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Re-engineering del wrapper XML Schema per il sistema MOMIS Relatore Chiar.ma Prof. Sonia Bergamaschi Correlatore Chiar.mo Ing. Maurizio Vincini Anno Accademico 2006-2007 Tesi di Laurea di Francesca Tartaglione Sommario Il sistema MOMIS I linguaggi di riferimento Wrapper XML Schema Re-engineering del wrapper Validazione sul caso di studio THALIA Attività progettuale svolta presso il Dipartimento di Ingegneria dell’Informazione Il sistema MOMIS Mediator envirOnment for Multiple Information Sources Linguaggio di partenza: XML Schema • Sviluppato dal W3C • Rappresentato interamente in XML 1.0 • Descrive la grammatica per un linguaggio di markup basato su XML • Set di componenti (definizioni di tipi, dichiarazioni di elementi) usati per validare gli oggetti che compongono un documento XML • Fa uso di namespace Linguaggio di arrivo: ODLI3 ODLI³ = ODL + I³ • Definito dal DB Group come estensione del linguaggio standard ODL (Object Definition Language) in accordo con le indicazioni del programma I³ (Intelligent Information Integration) • Progettato per descrivere ed integrare un insieme di sorgenti eterogenee Wrapper XML Schema • Progettato ed implementato da R. Rasi • Consente la traduzione di documenti in formato XML Schema nel formato ODLI3 • Regole di traduzione per ogni componente XML Schema • Presenza di problemi → Fase di re-engineering Re-engineering: gestione di element globali <complexType name="UNO"> <sequence> <element name="ELEMENT1" <element name="ELEMENT2" </sequence> <attribute name="ATTRIBUTE" use="optional"/> </complexType> <element name="PROVA_ELEMENT" type="string"/> type="string"/> type="string" type="string"/> Re-engineering: gestione di element globali Re-engineering: troncamento dei livelli di nesting • Obiettivo: ottimizzare la traduzione • Eliminazione dell’interfaccia creata dalla traduzione di un elemento globale a contenuto complesso • Modifica ai tag assegnati alle interfacce e agli attributi di un Model Group: <nameInterface>_sequence_i <nameInterface>_choice_i Re-engineering: gestione del Model Group choice <xs:complexType name="UNIONE"> <xs:choice> <xs:element name="UNO" type="xs:string" /> <xs:element name="DUE" type="xs:string" /> <xs:element name="TRE" type="xs:string" /> </xs:choice> </xs:complexType> • Mancata corrispondenza tra le regole ideate e la traduzione effettuata Re-engineering: gestione del Model Group choice Traduzione con regola precedente interface ${UNIONE} { attribute UNIONE_choice_1 ${UNIONE_choice_1}; } interface ${UNIONE_choice_1} { attribute string ${UNO}; attribute string ${DUE}; attribute string ${TRE}; }; Traduzione con nuova regola interface ${UNIONE_choice_1} { attribute string ${UNO}; union attribute string ${DUE}; union attribute string ${TRE}; }; Validazione su caso di studio: il benchmark THALIA • THALIA: benchmark pubblico e disponibile per sistemi di integrazione di informazione • Fornisce oltre 40 fonti scaricabili • Scopo: classificazione sistematica dei differenti tipi di eterogeneità sintattiche e semantiche • Uso del wrapper re-engineered per la traduzione di 10 Target schema in XML Schema nei rispettivi Challenge schema in ODLI3 per ottenere una validazione del lavoro svolto Esempio: file asu.xsd Target schema: Challenge schema: Conclusioni Analisi dei due linguaggi di riferimento e delle regole di traduzione ideate da R. Rasi Fase di re-engineering che ha consentito al wrapper di funzionare in maniera corretta ed ottimizzata rispetto alla versione precedente Validazione delle modifiche apportate attraverso il caso di studio THALIA Re-engineering del wrapper XML Schema per il sistema MOMIS