Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework

16
Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework Dott. Carlo Luzi 17 Giugno 2009

description

Studio sulla trasformazione di un sorgente BPEL in codice Java eseguibile.Gli screencast riferiti alla slide 12 dal titolo "L'Ambiente di Trasformazione nel Dettaglio" sono disponibili al seguente link: http://www.youtube.com/view_play_list?p=E627F611FFF0301D .

Transcript of Generazione di codice Java da sorgenti BPEL utilizzando l’Eclipse Modeling Framework

Page 1: 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

Page 2: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 3: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 4: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 5: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 6: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 7: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 8: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 9: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 10: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 11: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 12: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 13: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 14: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 15: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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

Page 16: Generazione di codice Java da sorgenti  BPEL utilizzando l’Eclipse Modeling  Framework

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