Model indipendent data and schema translation: un approccio runtime

Overview

MIDST (Model Indipendent Data and Schema Translation) è uno strumento sviluppato dall’Università degli Studi Roma Tre ed è interamente scritto in Java. La mia tesi riguarda un’evoluzione radicale di tale strumento, chiamata MIDST-RT (MIDST runtime), in modo tale che funzioni secondo un approccio runtime. MIDST (Model Indipendent Data and Schema Translation) è uno strumento per la traduzione offline di schemi e dati che esegue le traduzioni nel contesto di un modello universale, il supermodello, in cui con pochi costrutti generali è possibile rappresentare modelli diversi. Le traduzioni sono offline nel senso che l’intero database sorgente (schema e dati) deve essere importato nel tool e descritto nei termini del supermodello; nel supermodello viene eseguita la traduzione e l’intero database risultante (schema e dati) deve essere esportato nel sistema operazionale. MIDST-RT lavora invece secondo un approccio runtime, cioè basta importare nel supermodello solo lo schema sorgente, mentre la traduzione è eseguita nel sistema operazionale grazie alla generazione di statements eseguibili che mappano lo schema sorgente al modello target.

Originalità e innovazione

Il tool che ho sviluppato, MIDST-RT (MIDST runtime), nasce da una versione preesistente chiamata semplicemente MIDST. MIDST è un’implementazione dell’operatore "Modelgen" proposto da Bernstein in [Bernstein, "Applying model management to classical meta data problems", CIDR 2003], in cui vengono definiti degli operatori generici che risolvono molti problemi che riguardano schemi e metadati. Il problema che affronta MIDST nasce nei primi anni Settanta e riguarda la traduzione di schemi e dati tra diverse coppie di modelli. In letteratura esistono molte soluzioni per tale problema, la maggior parte delle quali, però, considera solamente modelli specifici, mentre l’approccio proposto da Atzeni e Torlone in [Atzeni, Cappellari, Torlone, Bernstein, Gianforme, "Model Indipendent Schema Translation", VLDB 2008], ripreso nella mia tesi, presenta traduzioni che sono model-indipendent. Inoltre, molti lavori prevedono la selezione manuale delle trasformazioni da eseguire, mentre nella mia tesi viene mostrato come è possibile generare automaticamente lo schema obiettivo a partire dallo schema sorgente, grazie all’utilizzo delle segnature.
Nella mia tesi viene proposto un approccio runtime al problema delle traduzioni di schemi, cioè i dati non vengono spostati dal sistema operazionale ma la traduzione è eseguita nel sistema operazionale stesso. Quindi il nuovo tool MIDST-RT necessita solo dell’importazione dello schema sorgente, generando viste che mappano lo schema sorgente in uno schema del modello target. Inoltre MIDST-RT consente la selezione automatica delle regole da applicare per eseguire la traduzione, grazie ad un algoritmo che si basa sulla descrizione di schemi e regole tramite segnature. La differenza maggiore tra un approccio offline e quello runtime è la seguente: nel primo, dato che le traduzioni sono eseguite nel tool, il linguaggio per esprimerle è unico per tutti i modelli, mentre nel secondo approccio esso dipende dal particolare sistema operazionale. Infatti, se esistono eterogeneità significative, può essere necessario un insieme di linguaggi, come SQL, SQL/XML ed XQUERY. Per risolvere questo problema, l’approccio runtime proposto permette di generare delle viste organizzate secondo i costrutti del modello target ma indipendenti da specifici linguaggi e, successivamente, le concretizza in statements eseguibili sulla base del linguaggio accettato dal sistema operazionale.
In conclusione, le principali innovazioni che questa tesi porta al problema della traduzione di schemi sono sostanzialmente due: generazione di statements eseguibili nel sistema operazionale (che producono viste) e traduzione runtime (cioè importiamo in MIDST-RT solamente lo schema sorgente e non i dati); selezione automatica delle regole di traduzione a partire da un database di regole presente nel tool.

Possibili ricadute industriali

MIDST-RT si presenta come uno strumento sperimentale utilizzato dall’Università Roma Tre nell’ambito della ricerca. Al momento non ha la presunzione di diventare uno strumento commerciale. Le idee che però sono state implementate in esso possono generare ricadute industriali interessanti. Vediamo qualche esempio di scenario reale in cui MIDST-RT può essere utilizzato e quali vantaggi presenta rispetto all’uso di strumenti già esistenti. L’approccio runtime di MIDST-RT aiuta a risolvere i problemi più noti sullo spostamento dei dati e sulle traduzioni di modelli, come il "data migration", l’aggiornamento di viste relazionali, il mapping Object-to-Relational e l’utilizzo di XML per la migrazione dei dati. Ad esempio, supponiamo che A è l’ORDBMS usato da alcuni applicativi di una data organizzazione e che si decide, per motivi commerciali, di migrare verso un ORDBMS B di un altro vendor. Con MIDST-RT definiamo sul sistema sorgente A un insieme di viste che mostrano uno schema compatibile con le caratteristiche del sistema di destinazione (ci basta importare in MIDST-RT lo schema sorgente), poi creiamo su B lo stesso schema mostrato su A dalle viste generate; a questo punto MISDT-RT produrrà un insieme di statements che estraggono dati dalle viste su A e li inseriscono nelle tabelle di B. In questo modo, le applicazioni già aggiornate utilizzeranno da subito il nuovo schema, mentre le altre potranno continuare ad utilizzare il vecchio finché non saranno anch’esse aggiornate. Analizziamo ora il problema del mapping Object-to-Relational: da un lato, a partire da uno schema Object-Relational, produciamo dei wrappers Object-Oriented che garantiscano un accesso ad oggetti alla base di dati; dall’altro lato, a partire da un insieme di classi Java generiamo automaticamente la base di dati. Esistono diversi strumenti sul mercato che risolvono questi problemi, ma il contributo innovativo che può fornire MIDST-RT è il seguente: gestione di diverse tecnologie Object-Relational (al momento è supportato l’OR di IBM DB2 9.5 e MICROSOFT SQLSERVER 2008), garantendo flessibilità nel mapping; possibilità di customizzazione del mapping, poiché l’utente può personalizzare il processo di traduzione, aggiungendo e rimuovendo costrutti, proprietà e vincoli; scelta di un modello target con caratteristiche non standard. Queste poche righe dimostrano come MIDST-RT, nonostante si presenti come un semplice strumento per la ricerca universitaria, potrebbe avere numerosi sbocchi sul mercato, in quanto molto flessibile e capace di risolvere svariati problemi.