Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework Dott. Carlo Luzi
18 Giugno 2009
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Scopo del Progetto Realizzare un ambiente di trasformazione di linguaggi INPUT: Business Process Execution Language (BPEL) OUTPUT: codice Java eseguibile
Tecnologie coinvolte nella trasformazione Modelli strutturati con Eclipse Modeling Framework (EMF) openArchitectureWare (oAW), framework di generazione
XSD WSDL BPEL
EMF
BPEL
oAW
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Java
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Scopo del Progetto Realizzare un ambiente di trasformazione di linguaggi INPUT: Business Process Execution Language (BPEL) OUTPUT: codice Java eseguibile
Tecnologie coinvolte nella trasformazione Modelli strutturati con Eclipse Modeling Framework (EMF) openArchitectureWare (oAW), framework di generazione
XSD WSDL BPEL
EMF
BPEL
oAW
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Java
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
L’Eclipse Modeling Framework (EMF) I modelli sono specificati con Diagrammi di classe UML XML Schema Java annotato
EMF può generare codice che opera sulle istanze dei modelli Funzioni lettura, scrittura, creazione e cancellazione Serializzazioni Deserializzazioni
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
L’Eclipse Modeling Framework (EMF) I modelli sono specificati con Diagrammi di classe UML XML Schema Java annotato
EMF può generare codice che opera sulle istanze dei modelli Funzioni lettura, scrittura, creazione e cancellazione Serializzazioni Deserializzazioni
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Il Business Process Execution Language (WS-BPEL) Linguaggio standard OASIS basato su XML Specifica iterazioni tra Web Service Esporta informazioni con interfacce WSDL Il progetto BPEL di Eclipse fornisce Un Editor grafico GEF per lo sviluppo Modelli EMF per la specifica 2.0 Validatore dei modelli EMF
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Il Business Process Execution Language (WS-BPEL) Linguaggio standard OASIS basato su XML Specifica iterazioni tra Web Service Esporta informazioni con interfacce WSDL Il progetto BPEL di Eclipse fornisce Un Editor grafico GEF per lo sviluppo Modelli EMF per la specifica 2.0 Validatore dei modelli EMF
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Modelli Ecore per la Trasformazione
EMF lavora con modelli Ecore I modelli principali sono contenuti in tre componenti org.eclipse.bpel.model bpel.ecore messageproperties.ecore partnerlinktype.ecore
org.eclipse.wst.wsdl wsdl.ecore
org.eclipse.xsd xsd.ecore
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Modelli Ecore per la Trasformazione
EMF lavora con modelli Ecore I modelli principali sono contenuti in tre componenti org.eclipse.bpel.model bpel.ecore messageproperties.ecore partnerlinktype.ecore
org.eclipse.wst.wsdl wsdl.ecore
org.eclipse.xsd xsd.ecore
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Generazione di Codice con Workflow oAW
Workflow .bpel .wsdl EMF Reader
BPEL Document
Meta Models
OAW è framework di generazione MDA/MDD che opera su modelli EMF Trasformazione attraverso workflow 1
2
3
Expand Template
Template Xpand
Outlet
Java Code
4
5
Registra estensioni .bpel e .wsdl Lettura istanza di un modello BPEL (documento) Definizione metamodelli per generazione Espansione di template in linguaggio Xpand Output codice con outlet
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Problemi Riscontrati Il BPEL Project è in incubazione Carenza di documentazione dei plugin XSD e BPEL Integrare le espressioni XPath nella trasformazione Aggiungere una libreria al codice generato Limitare le tipologie di espressioni
I componenti XSD, WSDL e BPEL non hanno API standard La trasformazione usa i modelli Ecore
Problema di accesso inter-documentale nei WSDL Utilizzo di import Fallimento silenzioso nel riferimento ai tipi XSD
OAW utilizza spesso soluzioni ad-hoc
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Problemi Riscontrati Il BPEL Project è in incubazione Carenza di documentazione dei plugin XSD e BPEL Integrare le espressioni XPath nella trasformazione Aggiungere una libreria al codice generato Limitare le tipologie di espressioni
I componenti XSD, WSDL e BPEL non hanno API standard La trasformazione usa i modelli Ecore
Problema di accesso inter-documentale nei WSDL Utilizzo di import Fallimento silenzioso nel riferimento ai tipi XSD
OAW utilizza spesso soluzioni ad-hoc
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Possibili Futuri Sviluppi Trasformazione Model2Model intermedia Model2Model Workflow
XSD WSDL BPEL
oAW
Model2Code Workflow
Single Model
Code Language
Test librerie XSD, WSDL e BPEL Creazione set documentale Suite di test puramente Java Collaudo singole trasformazioni con oAW Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
Introduzione
Tecnologie Base
Trasformazione
Conclusioni
Possibili Futuri Sviluppi Trasformazione Model2Model intermedia Model2Model Workflow
XSD WSDL BPEL
oAW
Model2Code Workflow
Single Model
Code Language
Test librerie XSD, WSDL e BPEL Creazione set documentale Suite di test puramente Java Collaudo singole trasformazioni con oAW Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi