Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
description
Transcript of Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework
Generazione di codice Java da sorgenti BPELutilizzando l’Eclipse Modeling Framework
Dott. Carlo Luzi
17 Giugno 2009
Introduzione Tecnologie Base Trasformazione Conclusioni
Scopo del Progetto
Realizzare un ambiente di trasformazione di linguaggiINPUT: Business Process Execution Language (BPEL)OUTPUT: codice Java eseguibile
Tecnologie coinvolte nella trasformazioneModelli strutturati con Eclipse Modeling Framework (EMF)openArchitectureWare (oAW), framework di generazione
EMF
BPEL JavaoAW
XSDWSDLBPEL
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework Dott. Carlo Luzi
Introduzione Tecnologie Base Trasformazione Conclusioni
Scopo del Progetto
Realizzare un ambiente di trasformazione di linguaggiINPUT: Business Process Execution Language (BPEL)OUTPUT: codice Java eseguibile
Tecnologie coinvolte nella trasformazioneModelli strutturati con Eclipse Modeling Framework (EMF)openArchitectureWare (oAW), framework di generazione
EMF
BPEL JavaoAW
XSDWSDLBPEL
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 sonospecificati con
Diagrammi diclasse UMLXML SchemaJava annotato
EMF può generare codice cheopera sulle istanze dei modelli
Funzioni CRUDSerializzazioniDeserializzazioni
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 sonospecificati con
Diagrammi diclasse UMLXML SchemaJava annotato
EMF può generare codice cheopera sulle istanze dei modelli
Funzioni CRUDSerializzazioniDeserializzazioni
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 OASISbasato su XMLSpecifica iterazionitra Web ServiceEsporta informazionicon interfacce WSDL
Il progetto BPELdi Eclipse fornisce
Un Editor grafico GEFper lo sviluppoModelli EMF per la specifica 2.0Validatore 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 OASISbasato su XMLSpecifica iterazionitra Web ServiceEsporta informazionicon interfacce WSDL
Il progetto BPELdi Eclipse fornisce
Un Editor grafico GEFper lo sviluppoModelli EMF per la specifica 2.0Validatore 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 EcoreI modelli principali sono contenuti intre componenti
org.eclipse.bpel.modelbpel.ecoremessageproperties.ecorepartnerlinktype.ecore
org.eclipse.wst.wsdlwsdl.ecore
org.eclipse.xsdxsd.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 EcoreI modelli principali sono contenuti intre componenti
org.eclipse.bpel.modelbpel.ecoremessageproperties.ecorepartnerlinktype.ecore
org.eclipse.wst.wsdlwsdl.ecore
org.eclipse.xsdxsd.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
BPELDocument
.bpel
.wsdl
EMF Reader
Meta Models
Expand Template
Template Xpand
Outlet Java Code
OAW è framework digenerazione MDA/MDD cheopera su modelli EMFTrasformazione attraversoworkflow
1 Registra estensioni .bpel e.wsdl
2 Lettura istanza di unmodello BPEL (documento)
3 Definizione metamodelli pergenerazione
4 Espansione di template inlinguaggio Xpand
5 Output codice con outlet
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework Dott. Carlo Luzi
Introduzione Tecnologie Base Trasformazione Conclusioni
Anatomia di un Generico Template Xpand
Blocco FILEBlocco DEFINEDichiarazioneEXPAND
A
B C
1 «
1
FILE name + ".example"»
1
2 «
1
DEFINE someOtherDefine FORSomeMetaClass»
1
3 «
1
EXPAND implClass FOREACHlistOfAs»
1
4 «
1
ENDDEFINE»
1
56 «
1
DEFINE implClass FOR A»
1
7 // code superclass A8 «
1
ENDDEFINE»
1
910 «
1
DEFINE implClass FOR B»
1
11 // code subclass B12 «
1
ENDDEFINE»
1
1314 «
1
DEFINE implClass FOR C»
1
15 // code subclass C16 «
1
ENDDEFINE»
1
17 «
1
ENDFILE»
1
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework Dott. Carlo Luzi
Introduzione Tecnologie Base Trasformazione Conclusioni
L’Ambiente di Trasformazione nel Dettaglio
Screencast1 Importazione progetto BPEL dal CSV2 Creazione del progetto oAW3 Importazione dei file XSD, WSDL e BPEL nel workspace4 Configurazione delle dipendenze nel MANIFEST.MF5 Creazione del workflow BPEL2Java6 Creazione del template Xpand semplificato
Template Xpand per la trasformazione in Java
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 è inincubazioneCarenza didocumentazione dei pluginXSD e BPEL
Integrare le espressioniXPath nella trasformazione
Aggiungere una libreriaal codice generatoLimitare le tipologie diespressioni
I componenti XSD, WSDLe BPEL non hanno APIstandard
La trasformazione usa imodelli Ecore
Problema di accessointer-documentale neiWSDL
Utilizzo di importFallimento silenzioso nelriferimento ai tipi XSD
OAW utilizza spessosoluzioni 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 è inincubazioneCarenza didocumentazione dei pluginXSD e BPEL
Integrare le espressioniXPath nella trasformazione
Aggiungere una libreriaal codice generatoLimitare le tipologie diespressioni
I componenti XSD, WSDLe BPEL non hanno APIstandard
La trasformazione usa imodelli Ecore
Problema di accessointer-documentale neiWSDL
Utilizzo di importFallimento silenzioso nelriferimento ai tipi XSD
OAW utilizza spessosoluzioni 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
oAW
XSDWSDLBPEL
CodeLanguage
Model2ModelWorkflow
Model2CodeWorkflow
SingleModel
Test librerie XSD, WSDL e BPELCreazione set documentaleSuite di test puramente JavaCollaudo 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
oAW
XSDWSDLBPEL
CodeLanguage
Model2ModelWorkflow
Model2CodeWorkflow
SingleModel
Test librerie XSD, WSDL e BPELCreazione set documentaleSuite di test puramente JavaCollaudo singole trasformazioni con oAW
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework Dott. Carlo Luzi