MDDTools2: passaggio a nuova piattaforma

  • Stampa
  • E-mail
Venerdì 03 Febbraio 2012

oaw 2 eclipse modelingE' in fase di realizzazione il passaggio degli MDD Tools ad una nuova piattaforma base (eclipse + tecnologie abilitanti al model driven development).

Di seguito spieghiamo le motivazioni, i benefici, e gli impatti che questo potrà avere sui progetti.

 

Cosa cambia

I dettagli tecnici della migrazione sono principalmente una questione che interessa il gruppo di sviluppo dei tool MDD, in quanto la migrazione è relativa alle tecnologie abilitanti al model driven devlopment (definizione DSL, generazione di codice, ...), quelle sulle quali sono costruiti i tool MDD. Verrà effettuato un refactoring interno del prodotto in modo da utilizzare le nuove tecnologie. Per il progetto utilizzatore del tool queste informazioni possono tranquillamente essere considerate principalmente a carattere informativo, pertanto le riportiamo a tale scopo.

L'evoluzione riguarda:
  1. il passaggio alla nuova versione di platform eclipse (3.7 - indigo)
  2. l'introduzione di una dipendenza da JDK 1.6 per l'esecuzione del tool sul client di sviluppo
  3. il passaggio a nuove versioni delle tecnologie EMF (e collegate)
  4. l'abbandono del framework openarchitectureware in favore delle corrispondenti tecnologie Xpand, Xtend, Check, MWE che fanno parte del progetto M2T di eclipse.

Non vi sono invece evoluzioni per quanto riguarda la target platform, ovvero il codice generato e le librerie utilizzate a runtime dal codice generato saranno identiche a quelle generate dalle ultime versioni stabili dei tool.


Perchè migriamo

I motivi per la migrazione sono molteplici:
  • Eclipse Indigo è ottimizzato rispetto a Helios con miglioramenti di performance durante le attiivtà di generazione
  • Le nuove versioni di EMF e tecnologie collegate. introducono nuove funzioni che potranno essere utilizzate in futuro per migliorare vari aspetti dell'utilizzo dei tool (user experience, velocità, ...)
  • Il progetto openarchitectureware è ormai abbandonato da oltre un anno mentre il corrispondente porting M2T ha avuto evoluzioni di vario genere
In sintesi la migrazione avrà come effetto benefico la possibilità di migliorare più agevolmente gli strumenti, utilizzando le tecnologie allo stato dell'arte.


Impatti sui progetti

Gli impatti sui progetti sono minimi e riassumibili come segue.
  • Progetto esistente
    • è necessario installare il JDK 1.6 sul client (ad oggi oltre il 50% degli utilizzatori lo ha già adottato)
    • è necessario scaricare il nuovo bundle che verrà messo a disposizione e installare i nuovi plugin
    • nel progetto generatore è necessario rimuovere le dipendenze dal plugin openarchitectureware (non più necessario e non più presente nel nuovo bundle base)
Nel caso in cui il progetto fosse già in precedenza attestato sulle ultime versioni stable dei plugin con vecchia piattaforma (guigen 1.6.5, servicegen 1.3.0, datagen 1.2.1) la rigenerazione non comporterà variazioni nel codice generato rispetto alla versione di partenza. In caso contrario l'impatto sarà lo stesso del passaggio alla ultima versione stable.


  • Progetto nuovo
    • invece di creare un nuovo progetto di tipo "openarchitectureware" è necessario creare un progetto di tipo "Xpand"
    • invece di creare file di tipo ".oaw" è preferibile creare un file di tipo ".mwe" (il contenuto è immutato). L'estensione ".oaw" continua a funzionare comunque.
    • a differenza di quanto succedeva con la versione precedente è necessario creare preventivamente il progetto target (quello in cui verrà generato il codice). 
    • il resto dell'operatività è immutata


Coesistenza tra le varie versioni

Le versioni di plugin 1.x (realizzate con la vecchia piattaforma) non sono più utilizzabili con la nuova (a meno che non vengano installate le dipendenze dal progetto openarchitectureware che non è incluso nel nuovo bundle - tale operazione è peraltro sconsigliata).

Non viene più testata la compatibilità dele versioni di plugin 2.x con il bundle basato su helios.

Politiche di supporto per le varie versioni

La prima versione relativa alla nuova piattaforma sarà numerata 2.0.0 per tutti i plugin. Di seguito la corrispondenza con le versioni precedenti
  • guigen 2.0.0 ⇒ guigen 1.6.5
  • servicegen 2.0.0 ⇒ servicegen 1.3.0
  • datagen 2.0.0 ⇒ datagen 1.2.1

Il prospetto riportato nel paragrafo "versioni supportate" della sezione "overview" riassume alcuni degli aspetti di evoluzione da tenere in considerazione.


In sintesi i principi che regolano questa politica di supporto sono i seguenti:
  • tutte le evoluzioni (improvements + new features) vengono effettuate solo dalla versione 2.0.x: non avrebbe senso richiedere nuove funzionalità senza voler passare alla nuova versione del tool
  • eventuali bugfix vengonno effettuati solo sulle ultime versioni stabili. Temporaneamente i bugfix verranno effettuati:
    • sulle versioni stabili 2.x anche se rilevati su versioni precedenti
    • sulle ultime versioni stabili 1.x solo se segnalate esplicitamente su tale versione
  • il supporto all'utilizzo verrà fornito solo sulle ultime versioni stabili del ramo 1.x e del ramo 2.x (ovvero sarà obbbligatorio recepire le fix più recenti per la versione minor in utilizzo prima di poter accedere al supporto)

E' disponibile una analisi della distribuzione/frammentazione dei plugin nelle varie versioni a dicembre 2011.

Disponibilità

Il bundle basato su indigo e la prima versione latest dei tre plugin è disponibile dal 07/02/2012. Sono state conseguentemente aggiornate le istruzioni di installazione.