ARTIST: Software-based services for migrating legacy software

Il progetto di ricerca si propone di sviluppare un approccio alla modernizzazione del software usando tecniche di progettazione Model Driven per automatizzare l’evoluzione e la migrazione di applicazioni “legacy” da e verso modelli dipendenti dalla piattaforma.

L’approccio, consentendo un’alternativa rapida ed economica allo sviluppo ex novo dell’applicazione senza alcun supporto automatico, riduce i rischi, il tempo e i costi della migrazione del software “legacy” e riduce le barriere per le aziende di servizi che vogliono sfruttare i vantaggi delle tecnologie e i modelli di business basati sui paradigmi di Cloud Computing e Software-as-a-Service (SaaS).

La soluzione ambisce a cambiare il modo in cui le aziende guardano al software e rivitalizzerà il mercato SaaS riducendo i rischi, il tempo e i costi della migrazione di quelle aziende di servizi che sono in attesa di avvantaggiarsi delle più recenti tecnologie e modelli di business basati sul Cloud Computing e SaaS ed, allo stesso tempo, bilanciare la continuità dei servizi software con l’ottimalità delle prestazioni e dei costi.

Metodi e strumenti per la valutazione della migrazione del software verso piattaforme Cloud

Uno degli obiettivi del progetto ARTIST è fornire un insieme di metodi e strumenti software che supportino le aziende nella valutazione della opportunità della migrazione del loro software verso i modelli di fornitura basati su Cloud oltre che analizzare l’impatto che la trasformazione del software potrebbe avere sulla azienda.

Nell’approccio del progetto la modernizzazione del software viene analizzata sotto due distinte, ma correlate, dimensioni: una che focalizza la tecnologia (architettura, prestazioni, affidabilità, modello dei dati e così via), un’altra che guarda agli aspetti organizzativi e di business (es. schema delle tariffe, mercato di riferimento, processi organizzativi).

Il processo di valutazione della modernizzazione mira a visualizzare il cambiamento del livello di maturità dei servizi una volta che la loro migrazione abbia avuto luogo. Il processo di valutazione fornisce una collezione di obiettivi misurabili e indicatori, espressi secondo metriche e concetti riconosciuti e condivisi, sui quali basare la stima della fattibilità della migrazione.

Più specificatamente il progetto ha l’obiettivo di:

  • definire e implementare un metodo per caratterizzare le dimensioni tecnica e organizzativa della applicazione da migrare; in particolare quegli aspetti legati alla sua modernizzazione verso l’infrastruttura Cloud target
  • stabilire un insieme di metriche e indicatori che caratterizzino gli aspetti tecnici della
  • applicazione da migrare e i modelli di business prima e dopo che la migrazione ha avuto luogo
  • sviluppare un insieme di strumenti software che valutino automaticamente misure legate al processo di modernizzazione quali: risorse ed effort richiesto, impatto sui processi aziendali, stima del ROI e payback, rischi operativi.

Trasformazione e generazione del nuovo codice guidata da modelli

Il progetto mira a definire tecniche per la migrazione verso ambienti Cloud basate sulla trasformazione di modelli delle applicazioni software da migrare. La cosiddetta fase di “forward engineering” è divisa nei seguenti passi:

  • Specifica dei requisiti della piattaforma Cloud di destinazione
  • Generazione, ed eventuale ottimizzazione, dei modelli della nuova applicazione a partire dai modelli della applicazione “legacy”
  • Generazione del codice della nuova applicazione per la piattaforma Cloud utilizzando tecnologie model-to-text (M2T) per la generazione del codice.

In particolare, chi si occupa della modernizzazione deve avere a disposizione un modello dell’ambiente Cloud di destinazione in modo da poter selezionare una delle possibili configurazioni che esso consente. La configurazione selezionata è l’input per le trasformazioni di modelli che vengono usate per produrre il nuovo codice.

Un aspetto importante in questa fase è l’ottimizzazione del nuovo codice che consente di raggiungere gli obiettivi fissati per la modernizzazione. Pertanto, è necessario disporre di ulteriori trasformazioni, basate su schemi che hanno dimostrato la loro efficacia in situazioni concrete (optimisation patterns), per ottimizzare il nuovo codice.

Inoltre, una attenzione particolare deve essere posta a come realizzare quegli obiettivi della modernizzazione del software che riguardano requisiti non-funzionali quali le prestazioni. Per questo scopo sono essenziali non solo le strategie fornite dall’ingegnere del software ma anche strumenti per esplorare automaticamente come il soddisfacimento dei requisiti non-funzionali di modernizzazione varia al variare delle configurazioni offerte dall’ambiente Cloud di destinazione.

www.artist-project.eu