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.