<XML......MOMIS/> Serializzazione di oggetti in formato XML nellambito del sistema MOMIS Davide Lenzi Chiar.mo Prof. Sonia Bergamaschi Chiar.mo Prof. Michele.

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

Informatica Recupero debito quarto anno Terzo incontro.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Document Type Definition per XML Presentazione 8.1 Informatica Generale (Prof. Luca A. Ludovico)
una interfaccia internet per il sistema Momis
di Architetture Peer to Peer per la Gestione di Database Distribuiti
Nana Mbinkeu Rodrigue Carlos 1 DB unimo OTTIMIZZAZIONE DI QUERY IN MOMIS Università degli studi di Modena e Reggio Emilia Relatore: Prof. Sonia.
INTEGRAZIONE MULTILINGUA DI PUBBLICA AMMINISTRAZIONE: SIAM
Query OQL e XQUERY a confronto
Progetto e realizzazione di un wrapper XML Schema per il sistema MOMIS
Facoltà di Ingegneria di Modena ANALISI E SVILUPPO DI TECNICHE PER
Interoperabilità tra ontologie eterogenee: i traduttori ODLI3 - OWL
Universit à Degli Studi di Modena e Reggio Emilia Facolt à di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Nuovo Ordinamento Didattico.
UNIVERSITA DI MODENA E REGGIO EMILIA Facolta di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Tesi di laurea di Relatore Correlatore.
Università degli studi di Modena e Reggio Emilia
1 Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento.
Il sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente di.
Il Sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente d integrazione.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Relatore:
Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Analisi.
SQL92 e XQuery1.0 a confronto1 SQL92 E XQUERY1.0 A CONFRONTO Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
Re-engineering del wrapper XML Schema per il sistema MOMIS
1 Integrazione di Sorgenti HTML in MOMIS: Analisi Comparativa degli Strumenti Esistenti Integrazione di Sorgenti HTML in MOMIS: Analisi Comparativa degli.
U NIVERISTÀ DEGLI S TUDI DI M ODENA E R EGGIO E MILIA Facoltà di Ingegneria - Sede di Modena Corso di Laurea in Ingegneria Informatica Dinamica delle Ontologie:
Università degli Studi di Modena e Reggio Emilia Facoltà dIngegneria - sede di Modena Corso di Laurea in Ingegneria Informatica Interoperabilità di componenti.
Università degli Studi di Modena e Reggio Emilia
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica MOMIS: servizi di wrapping.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e realizzazione.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea in Ingegneria Informatica Integrazione di WordNet Domains.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Ontologie Lessicali Multilingua:
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
L’uso dei database in azienda
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
Informatica.science.unitn.it Un esempio di architettura basata sulluso di XML e XSL per la pubblicazione di un sito web.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Tema 1: Integrazione di dati provenienti da sorgenti eterogenee
CVM un modello concettuale per la gestione di versioni di schema in un contesto di integrazione Fabio Grandi DEIS - Università di Bologna.
Un prototipo di strumento per la manipolazione di versioni di schema in ambito eterogeneo Fabio Grandi DEIS - Università di Bologna SVMgr Schema Versioning.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Unità Didattica 2 I Linguaggi di Programmazione
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
Il componente Query Manager del sistema MOMIS: testing ed analisi delle performance UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA _____________________________________________________.
Introduzione alla programmazione Object Oriented
Tesi di Laurea in Ingegneria Informatica
Corso di Laurea in Ingegneria per l’Ambiente e il Territorio Informatica per l’Ambiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
ODMG. L’ODMG L’Object Data Management Group è un consorzio di produttori di ODBMS che ha proposto uno standard per: il modello a oggetti il linguaggio.
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Progettazione di basi di dati: metodologie e modelli
Il software Claudia Raibulet
Mapping Database Atsilo
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
1 Lixto tools evaluations for HTML data Integration in Momis Lixto tools evaluations for HTML data Integration in Momis Università degli Studi di Modena.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
1 DB unimo CROSS LAB Integrazione framework MOMIS - BCI Parma, 18/09/2007 Sonia Bergamaschi, Maurizio Vincini, Mirko Orsini
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Proprieta’ e caratteristiche strutturali dei sistemi.
Transcript della presentazione:

<XML......MOMIS/> Serializzazione di oggetti in formato XML nellambito del sistema MOMIS Davide Lenzi Chiar.mo Prof. Sonia Bergamaschi Chiar.mo Prof. Michele Colajanni Tesi di: Relatore: Controrelatore: Modena, 22/03/2001 UNIVERSITÀ DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica

<XML......MOMIS/> Obiettivi Garantire linteroperabilità con altri sistemi a mediatore mediante luso di una lingua franca. Serializzare in XML lo stato del sistema MOMIS. 0100%

<XML......MOMIS/> Esportazione di Schemi ODL I 3 in XML 1.0 Non mi dilungherò su cosa sia il progetto MOMIS e quali sono i suoi obiettivi: questi argomenti sono stati ampiamente trattati in lavori di tesi precedenti e verranno ripresi anche nella prossima presentazione. Parte II 0100%

<XML......MOMIS/> Il sistema MOMIS 0100%

<XML......MOMIS/> Caratteristiche del linguaggio ODL I 3 Descrive schemi di basi di dati in maniera indipendente dalla sorgente (relazionale, ad oggetti, semistrutturata) Estensione del linguaggio standard ODL di ODMG Linguaggio Object Oriented ricco di aspetti semantici. Definisce costrutti per la rappresentazione della conoscenza: vincoli di integrità, relazioni intensionali ed estensionali tra concetti. Definisce chiavi primarie, candidate e foreign key. supporta multiple definizioni per una stessa classe, utile per rappresentare sorgenti semistrutturate. 0100%

<XML......MOMIS/> MOMIS produce il Global Virtual Schema (GVS) Lo schema integrato è costruito partendo dalle varie sorgenti e viene espresso in ODL I 3. Il GVS contiene un insieme di classi globali costruite a partire dalle classi presenti negli schemi locali. per ogni classe globale viene definita una mapping table: una struttura tabellare che descrive come i vari attributi globali vengono costruiti a partire dagli attributi locali. 0100%

<XML......MOMIS/> MOMIS come sorgente integrata di dati XML Esportare uno schema ODL I 3 in XML 1.0 significa creare una DTD che descriva la struttura dello schema sorgente cercando di limitare perdite di conoscenza. La DTD prodotta potrà essere utilizzata: –per validare i dati ritornati. –come fonte di informazioni su un generico documento XML sul quale porre delle query utilizzando un linguaggio di interrogazione per XML: es. XML-QL 0100%

<XML......MOMIS/> ODLI3 vs DTD di XML 1.0 ODLI3 relazioni fondamentali: –Part-of –Kind-of –Is a vincoli di integrità, relazioni intensionali, relazioni estensionali, chiavi DTD: relazioni fondamentali: – Part-of – Kind-of solo in forma implicita Non ci sono altri strumenti! Parte della conoscenza viene necessariamente perduta. 0100%

<XML......MOMIS/> Problemi risolti per ottenere la traduzione. Omonimie: ODL I 3 consente la definizione di attributi omonimi, la DTD invece richiede lunivocità degli elementi dichiarati. (rinominazione e mapping) Ereditarietà ricondotta a sole relazioni part-of: Student discende da Person – traduzione della relazione is a. Traduzione delle chiavi: impossibile con i soli attributi ID o IDREF.

<XML......MOMIS/> Aspetti tradotti direttamente o comunque supportati dalla DTD: Struttura delle entità definite in ODL I 3 Mapping table Ereditarietà traduzione della relazione is a –algoritmo per lesplorazione ricorsiva della discendenza per costruire la lista di tutte le possibili alternative. Definizioni di interfacce in union. (operatore | ) Template types (uso delloperatore *) attributi opzionali (uso delloperatore ?) Relationship ODL 0100%

<XML......MOMIS/> Semantica solamente descritta: Viene prodotto un elemento XML che riporta meta informazioni –Chiavi primarie –Chiavi candidate –Foreign Key Altre informazioni: –Tipi ODL I 3 –Mapping tra nomi ODL I 3 e nomi usati nella DTD –Nomi delle relationship inverse 0100%

<XML......MOMIS/> Conoscenza perduta: relazioni intensionali ed estensionali vincoli di integrità 0100%

<XML......MOMIS/> Esempio: classe ODLI3 class course ( source relational university key (name) ) { attribute boolean difficult; attribute string name; } class spec_course : course ( ) { attribute set requires; } course spec_course 0100%

<XML......MOMIS/> Esempio: traduzione DTD <!ATTLIST course id_xml ID #REQUIRED...> <!ATTLIST odli3_reference reference IDREF#IMPLIED > class course ( source relational university key (name) ) { attribute boolean difficult; attribute string name; } class spec_course : course ( ) { attribute set requires; } 0100%

<XML......MOMIS/> Conclusioni Il traduttore ODLI3-DTD sono state scritte 3073 linee di codice commentato –Per tradurre gli aspetti semantici si sta studiando la possibilità di utilizzare RDF e RDF Schema –Per supportare la traduzione diretta dei tipi ODLI3 si pensa di scrivere un traduttore anche per XML schema. 0100%

<XML......MOMIS/> Serializzare lo stato di MOMIS in XML In realtà si è risolto un problema più generale: la serializzazione di qualunque grafo di oggetti Java in XML. Gli oggetti sono entità software caratterizzate da: –uno stato, formato da vari componenti (campi) –operazioni, unico strumento per modificare lo stato interno Serializzare significa ordinare, mettere in sequenza i vari componenti dello stato, al fine di ottenerne uno stream. 0100%

<XML......MOMIS/> Inquadrare il problema La serializzazione è utilizzata per –Light weight persitence –Remote methods invocation (RMI) Schema di riferimento:

<XML......MOMIS/> La destinazione… (object deserialization) Deve essere in grado di ricostruire unistanza equivalente a quella originale Ha a disposizione: –le informazioni presenti nello stream. –la conoscenza del protocollo utilizzato

<XML......MOMIS/> Tutto funziona bene se: Sorgente e destinazione fanno parte dello stesso applicativo o utilizzano moduli compatibili per i processi di I/O di oggetti. Ma in ambienti eterogenei? –Difficoltà di accesso allinformazione per i software che non conoscono il protocollo utilizzato

<XML......MOMIS/> Serializzazione binaria: Loggetto viene convertito in una uniforme sequenza di byte. Vantaggio: –Altissima efficienza: stream di dimensione ridotta alte prestazioni. Serializzare in binario significa scegliere alte prestazioni ostacolando però lutilizzo del proprio software, al di fuori degli scopi per cui era stato progettato.

<XML......MOMIS/> Serializzare in XML: facilita lo scambio di informazioni tra ambienti eterogenei e si permette limpiego del proprio software per scopi differenti da quelli per cui era stato progettato. –la deserializzazione è possibile solo se si conosce il protocollo utilizzato (significato dei nomi dei tag e degli attributi) ma... –le informazioni risultano comunque accessibili grazie allo standard XML. Problema: alto livello di ridondanza insito nella sintassi XML. –Sono stati studiati degli accorgimenti per ridurla 0100%

<XML......MOMIS/> Il package XmlTools: Serializzazione/deserializzazione di grafi di oggetti Java –luso del linguaggio Java è un vincolo di progetto. Trasparente allutilizzatore. –Oggetti visti come black box Flessibile e personalizzabile: il codice XML prodotto varia in base ai desideri dellutente. Basato sulle Java Object Serialization Specification per ottenere una forte integrazione con il meccanismo standard fornito dal linguaggio. Forte insensibilità allevoluzione delle classi (Class versioning). 0100%

<XML......MOMIS/> XmlTools: Architettura. 0100%

<XML......MOMIS/> Quali classi sono serializzabili? Da un punto di vista tecnico XmlTools è in grado di serializzare qualunque classe. Tuttavia per questioni di protezione e per uniformarsi al meccanismo standard di Java, vengono serializzate solo le classi che implementano linterfaccia Serializable o una delle sue estensioni. Serializable è uninterfaccia vuota! Serve solo a distinguere le classi che possono essere serializzate dalle altre. 0100%

<XML......MOMIS/> Il processo di serializzazione (grafi) Problema: –Non si serializzano singoli oggetti ma grafi di oggetti. –Lo stato di un oggetto può contenere riferimenti ad altri oggetti o riferimenti ricorsivi a se stesso. –Tutti gli oggetti accessibili a partire dalla radice del grafo vanno anchessi serializzati. 0100%

<XML......MOMIS/> Il processo di serializzazione (grafi) Soluzione –Ogni singolo oggetto viene serializzato ununica volta: nellelemento che contiene la definizione del suo stato viene scritto un attributo contenente un identificatore numerico: <object field=Name class=java.lang.String... –Ogni successivo riferimento allo stesso oggetto provoca la scrittura di un elemento XML vuoto con un riferimento alla definizione vera e propria. 0100%

<XML......MOMIS/> Il processo di serializzazione (algoritmo) Lalgoritmo di serializzazione funziona sommariamente nel modo seguente: sia obj loggetto da serializzare. –Se obj è già stato serializzato in precedenza, scrivi un riferimento allobject_ID reperito da una struttura interna. –Se loggetto è di una classe particolare (conosciuta da XmlWriter o un suo eventuale discendente) attiva le procedure specifiche per quella classe. –Cerca (a run-time) allinterno di obj eventuali metodi per la personalizzazione delloutput ed invocali.

<XML......MOMIS/> Il processo di serializzazione (algoritmo) –Per tutti i campi delloggetto di ogni sua superclasse: se il campo è un tipo primitivo scrivi una sua rappresentazione Es: se il campo è un oggetto invoca ricorsivamente il processo di serializzazione.

<XML......MOMIS/> Personalizzazione delloutput. Supporto di tutti gli strumenti standard di personalizzazione presenti nelle specifiche java: metodi writeObject/readObject, interfaccia Externalizable. Supporto di interfacce analoghe specifiche per XML. oppure tramite limpostazione di semplici proprietà booleane è possibile scegliere vari formati senza scrivere linee di codice. Esempi: – 0100%

<XML......MOMIS/> Personalizzazione delloutput Implementando uno dei metodi (facoltativi) writeObject nella classe da serializzare: private writeObject(XmlWriter wrt) throws XmlToolsException; private writeObject(ObjectOutputStream out) throws IOException; –il loro funzionamento è analogo a quello descritto nel meccanismo standard di serializzazione. Implementando apposite interfacce: Externalizable (java.io) o XmlExternalizable A run-time XmlWriter ricerca questi metodi allinterno delle classi da serializzare ed eventualmente li invoca.

<XML......MOMIS/> Serializzazione: Altre Caratteristiche riduzione della ridondanza: –Uso di valori di default: eliminazione dei valori null negli array –eliminazione dei tag che descrivono superclassi prive di campi serializzabili. Bilanciamento facoltativo della struttura XML per limitarne la profondità e favorire la ricerca di informazioni. Protezione delle informazioni sensibili: supporto alla parola riservata transient del linguaggio Java 0100%

<XML......MOMIS/> Il processo di ricostruzione (object deserialization) XmlReader implementa un algoritmo di ricostruzione delle istanze che può essere riassunto in due passi principali: –Allocare una nuova istanza appartenente alla classe specificata nel documento XML. –Ripristinare lo stato serializzato mantenendo se possibile la compatibilità con le versioni precedenti della stessa classe. La difficoltà maggiore nella realizzazione di XmlReader è stata la progettazione di un algoritmo che consentisse una comunicazione bidirezionale tra versioni differenti delle stesse classi. 0100%

<XML......MOMIS/> Allocare una nuova istanza Java mette a disposizione un metodo per istanziare una classe il cui nome è noto solo a run-time. Il problema è che questo metodo richiede la presenza nella classe di un costruttore senza argomenti. Se una classe non specifica il costruttore di default? –si può chiamare a run-time uno degli altri costruttori, ma con quali argomenti? –si limita la deserializzazione alle sole classi con il costruttore di default? La seconda soluzione è praticabile ma è molto limitante.

<XML......MOMIS/> Il costruttore fantasma. Come allocare unistanza di una classe senza chiamare alcun costruttore? Come riuscire a chiamare il costruttore di default della prima superclasse non serializzabile? (requisito delle specifiche Java) XmlReader implementa uno speciale costruttore in grado di allocare per classi qualunque. –Il costruttore alloca le istanze seguendo fedelmente le specifiche Java. –Per la sua implementazione si è implementato un metodo nativo che fa uso della Java Native Interface (JNI)

<XML......MOMIS/> Il metodo nativo Il metodo nativo è scritto in ANSI C ed è contenuto in una libreria dinamica La presenza della libreria dinamica non è obbligatoria al funzionamento di XmlTools: –Se la libreria è assente XmlReader è ancora in grado di allocare istanze, ma in questo caso richiede la presenza di un costruttore di default. Il metodo nativo non presenta problemi di portabilità posto che il sistema su cui viene compilato supporti le librerie dinamiche.

<XML......MOMIS/> Ricostruzione dello stato: Viene controllato se la classe implementa una delle interfacce Externalizable o XmlExternalizable Viene controllata la presenza, allinterno della classe da ricostruire, di codice personalizzato per interpretare linput (readObject) per ogni componente dello stato si hanno due possibilità –se il campo è un tipo primitivo, si assegna il valore presente nel doc. XML direttamente allistanza allocata nel passo precedente. –se il campo è un oggetto viene allocata una nuova istanza e il suo stato è ripristinato ricorsivamente

<XML......MOMIS/> Evoluzione delle classi (java) Le classi non sono entità immutabili Per ogni classe Java calcola lo SUID (Stream Unique IDentifier) –intero a 64 bit –uso del SHA-1 (Secure Hash Algotithm) Due versioni di una classe sono equivalenti se hanno lo stesso SUID. –una delle due dovà dichiarare esplicitamente lo SUID con cui è compatibile. XmlReader usa gli SUID per esegure i controlli di compatibilità

<XML......MOMIS/> Evoluzione delle classi (XmlReader) Uso di nomi simbolici dei campi e dei loro tipi Linsensibilità al cambiamento delle classi è ottenuta utilizzando un opportuno meccanismo di mapping tra i campi descritti in XML e quelli effettivamente presenti allinterno della classe in memoria. –solo i Campi aventi lo stesso nome e lo stesso tipo di quelli presenti nel doc. XML sono deserializzati, gli altri vengono ignorati Non tutti i cambiamenti consentono di ottenere unistanza valida, le specifiche Java indicano quali. XmlReader è conforme alle specifiche Java.

<XML......MOMIS/> XmlReader, altre caratteristiche Supporta la ricostruzione di istanze anche per i documenti Bilanciati. Possibilità di registrare dei callback per effettuare ulteriori validazioni o inizializzazioni prima che il grafo di oggetti sia ritornato allutilizzatore. (Es: apertura di file) 0100%

<XML......MOMIS/> Conclusioni XmlTools Per XmlTools sono state digitate 5564 linee di codice commentato. –XmlTools è attualmente utilizzato per serializzare e deserializzare lo stato dellintero sistema MOMIS in XML Durante la tesi sono state prodotte 8637 linee di codice totali. 0100%