transformación de workflows científicos a modelos de negocio … final.pdf · 2014. 9. 12. ·...

155
Universidad Nacional de San Luis Facultad de Ciencias Físico Matemática y Naturales Tesis para optar a la titulación de posgrado correspondiente a la Maestría en Ingeniería de Software Transformación de Workflows Científicos a Modelos de Negocio en BPMN2 utilizando QVT Lic. Corina Natalia Abdelahad Directores: Dr. Daniel Riesco (UNSL) Dr. Carlos Kavka (ESTECO SpA - Italia) San Luis 2013

Upload: others

Post on 09-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

Universidad Nacional de San Luis

Facultad de Ciencias Físico Matemática y Naturales

Tesis

para optar a la titulación de posgrado correspondiente a la

Maestría en Ingeniería de Software

Transformación de Workflows Científicos

a Modelos de Negocio en BPMN2

utilizando QVT

Lic. Corina Natalia Abdelahad

Directores: Dr. Daniel Riesco (UNSL)

Dr. Carlos Kavka (ESTECO SpA - Italia)

San Luis

2013

Page 2: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

Agradecimientos

Habiendo llegado a la culminación de este proyecto, quiero agradecer a todos aquellos que de

una u otra manera me han acompañado en esta etapa dándome su apoyo, consejo y ánimo sin

los cuales no hubiera sido posible lograr este objetivo.

En primer lugar a Dios y a la Mater por sostenerme en todo momento e iluminarme.

A mi familia por su apoyo incondicional en todas mis decisiones.

A mis amigas por soportar mis grandes ausencias, por estar siempre a mi lado y tener

las palabras justas en cada momento.

A mi director Daniel Riesco por confiar en mí dándome la posibilidad de realizar este

trabajo. Por brindarme su asesoramiento siempre y su generosidad a la hora de compartir sus

conocimientos.

A mi co-director Carlos Kavka por su paciencia, dedicación, tiempo y generosidad no

sólo durante el desarrollo de este trabajo de tesis sino durante mi estadía en Italia. Sin Carlos

y Daniel este trabajo y la estadía en Italia no hubieran sido posibles. Estaré eternamente

agradecida.

A la empresa ESTECO SpA por el aporte económico para mi estancia en Italia en la

que pude realizar importantes avances para este trabajo de tesis. Además de abrirme sus

puertas y hacerme sentir parte de ella. En especial le agradezco a Luka, Daniela, Laura y al

grupo de investigación.

A Franco Neri por brindarme su ayuda incondicionalmente.

A mis compañeras de grupo por sus oraciones.

A mis colegas del Área de Programación y Metodología de Desarrollo de Software por

estar dispuestos a ayudarme en todo aquello que estuviera a su alcance.

Page 3: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

iii

Índice

Capítulo 1. Introducción 1

1.1. Motivación y Contribuciones……………………………………………. 2

1.2. Trabajos Relacionados ……………………………………………….…. 4

1.3. Objetivos………………………………………………………………… 6

1.4. Organización del Informe……………………………………………...... 7

Capítulo 2. Modelos de Negocio 8

2.1. Introducción …………………………………………………………...... 8

2.2. ¿Qué es BPMN?…………………………………………………………. 9

2.3. ¿Qué es un Proceso de Negocio? ……………………………………...... 11

2.4. Usos generales de BPMN ……………………………………………..... 11

2.5. Elementos de BPMN …………………………………………………… 13

2.6. Flujos de Trabajo (Workflows )…………….…………………………… 31

2.6.1. Sistemas de Gestión de Flujos de Trabajo ………………………… 31

2.6.2. Estándares para modelado de flujos de trabajo……….……………. 32

2.6.3. Flujos de Trabajo Científicos……….………..…………………….. 33

2.6.4. Modelo de referencia de flujos de trabajo…………………………... 34

Capítulo 3. Arquitectura Dirigidas por Modelos 37

3.1. Introducción ………………………………………………………... 37

3.2. MDA………………………………………………………………... 39

3.3. Beneficios de MDA ………………………………………………... 43

3.4. Transformación de Modelos y Metamodelos …..………………….. 44

3.5. Arquitectura en capas ……………………..……………………….. 46

3.6. Estándares involucrados en MDA………………………………….. 48

3.7. QVT ………………………………………………………………... 49

3.7.1. Introducción a QVT …………..………………………………... 49

3.7.2. Visión General ……….………………………………………… 51

3.7.3. Lenguaje Relations …………………………………………….. 53

Page 4: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

iv

Capítulo 4. Metamodelos 60

4.1. Introducción………………………………………………………… 60

4.2. Metamodelo BPMN2……………………………………………….. 61

4.2.1. Principales elementos del metamodelo BPMN2……………...... 61

4.2.2. Metamodelo y la Metaclase Process..…………………………... 62

4.2.3. Metaclase Event y sus relaciones……………………………...... 64

4.2.4. Metaclase Activity y sus relaciones…………………………...... 65

4.2.5. Metaclase Gateway y sus relaciones…………………………..... 68

4.2.6. Objetos de datos en el metamodelo..………………………….... 69

4.2.7. Extensiones en el metamodelo..……………………………….... 73

4.3. Metamodelo de ESTECO…………………………………………... 74

Capítulo 5. Transformaciones 79

5.1. Arquitectura ………………………………………………………... 79

5.2. Transformación y Relación Funcional……….……………………... 82

5.3. Reglas definidas para la transformación ….………………………... 85

Capítulo 6. Caso de estudio 103

6.1. Introducción ………………………………………………………... 103

6.2. Un caso de estudio …………………………………………………. 104

Capítulo 7. Conclusiones y Trabajos Futuros 113

7.1. Conclusiones ………………………………………………………. 113

7.2. Trabajos Futuros …………………………………………………... 114

Anexos 116

A. Reglas de Transformación ……………………………………………… 116

B. Código del Caso de Estudio……………………………………………... 137

C. Código generado por la transformación del Caso de Estudio …………... 139

Referencias……………………………………………………………… 143

Page 5: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

v

Índice de Figuras

2.1. Ejemplo de un proceso B2B colaborativo ………………………………..

2.2. Ejemplo de un proceso con mínimo detalle ………………………….…...

2.3. Evento de inicio ……………………………………………………...…...

2.4. Evento intermedio ………………………………………………………...

2.5. Evento de fin ……………………………………………………………...

2.6. Actividad ……………………………………………………………..…...

2.7. Tipos de Tareas …………………………………………………………...

2.8. Sub-Proceso colapsado …………………………………………………...

2.9. Sub-Proceso expandido ……………………………………………..……

2.10. Tipos de Call Activity ……………………………………………..…….

2.11. Tipos de Compuertas ……………………………………………………

2.12. Compuerta Exclusiva divergente …………………………………..……

2.13. Compuerta Exclusiva convergente ……………………………………...

2.14. Compuerta Inclusiva divergente ………………………………………...

2.15. Compuerta Paralela ………………………………….…………….…….

2.16. Compuerta Compleja ……………………………………………………

2.17. Compuerta Basada en Eventos ……………………………………..…...

2.18. Objeto de Datos …………………………………………………...…….

2.19. Ejemplo del uso de Objeto de Datos ……………………………….……

2.20. Almacén de Datos ……………………………………………………….

2.21. Dato de Entrada …………………………………………………...…….

2.22. Dato de Salida ………………………………….………………………..

2.23. Reglas de Conexión para los Flujos de Secuencia ………………………

2.24. Flujo de Secuencia ………………………………………………..……..

2.25. Flujo de Secuencia Condicional ………………………………………...

2.26. Flujo de Secuencia por Defecto …………………………………………

2.27. Flujo de Mensaje ………………………………………………………..

2.28. Asociación ………………………………………………………..……..

2.29. Anotaciones de Texto …………………………………………………...

2.30. Asociación de Datos …………………………………………………….

2.31. Ejemplo de utilización de las Asociaciones de Datos …………………..

12

13

14

15

16

16

17

18

18

18

19

19

20

20

21

21

22

22

23

23

24

24

25

25

26

26

26

27

27

27

28

Page 6: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

vi

2.32. Pool ……………………………………………………………………...

2.33. Ejemplo de un proceso con más de un Pool …………………………….

2.34. Dos Carriles en un Pool …………………………………………………

2.35. Un Grupo ………………………………………………………………..

2.36. Un Anotación de Texto como Artefacto ………………………………...

2.37. Características de los SGFT ……………………………………………..

2.38. Modelo de Referencia: Componentes e Interfaces .………………..……

3.1. Arquitectura Dirigida por Modelos de la OMG ………………………….

3.2. Transformación de modelos …………………………………………...…

3.3. Transformación de modelos y metamodelos ……………………………..

3.4. Ejemplo de las cuatro capas del metamodelo …………………………….

3.5. Relaciones entre los metamodelos QVT …………………………………

3.6. Declaración de una transformación en QVT-Relations ………………......

3.7. Metamodelo SimpleUML ……………………………………………......

3.8. Metamodelo SimpleRDBMS ……………………………………………..

3.9 Declaración de una relation y dominios checkonly y enforce en QVT-

Relations ……………………………………………………………………….

3.10. Declaración de cláusulas when, where y Pattern matching en QVT-

Relations …………………………………………………...

3.11. Declaración de relaciones top-level y no-top-level en QVT-Relations …

3.12. Creación de objetos usando patrones en QVT-Relations ……………….

4.1. Ilustración de instancias en MOF …………………………………….…..

4.2. Organización de los principales elementos BPMN2 ……………………..

4.3. Algunos elementos relacionados con Process ……………………………

4.4. Clase Event y sus relaciones ………………………………………….…..

4.5. Clase Activity y sus relaciones ……………………………………………

4.6. Clase Task junto con sus tipos y sus relaciones …………………………..

4.7. Clase Sub-Process ………………………………………………………..

4.8. Diagrama de clase para los tipos de compuertas …………………………

4.9. Clase ItemAwareElement …………………………………………………

4.10. Relaciones vinculadas a InputOutputSpecification ………………….….

4.11. Clase DataAssociation …………………………………………………..

4.12. Extensiones en BPMN2 …………………………………………………

28

29

29

30

30

32

34

40

43

46

47

51

53

54

54

55

56

57

59

60

62

63

65

66

67

68

69

70

71

72

74

Page 7: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

vii

4.13. Elementos principales del metamodelo ESTECO……………………….

4.14. Elementos relacionados a los Eventos …………………………………..

4.15. Conectores del metamodelo ……………………………………………..

4.16. Modelado de Datos ………………………………………………….…..

4.17. Modelado de Tareas ……………………………………………………..

5.1. Arquitectura de la Transformación …………………………………….…

5.2. Ejemplo de la jerarquía de las cuatro capas del metamodelo …………….

5.3. Correspondencia entre los elementos de ESTECO y los de BPMN2 …….

5.4. Definición de la transformación ………………………………………….

5.5. Elementos involucrados en la relación createProcess ……………………

5.6. Relación para transformar un evento de inicio …………………………...

5.7. Elementos de los metamodelos involucrados en la relación

createSequenceFlowStart2Activity …………………………………………….

5.8. Relación para transformar una tarea ……………………………………...

5.9. Elementos de los metamodelos involucrados en la relación

taskNode2taskBPMN2………………………………………………………….

5.10. Elementos del metamodelo ESTECO para extender las tareas …………

5.11. Relación para transformar un flujo de secuencia ……………………......

5.12. Elementos de los metamodelos involucrados en la relación

createSequenceFlow……………………………………………………………

5.13. Relación para crear propiedades de la tarea Calculator…………………

5.14. Relaciones para crear la propiedad Charset y KeepAlive …………...….

5.15. Elementos de los metamodelos involucrados en las relaciones

propertyCharset y propertyKeepAlive …………………………………………

5.16. Relación para crear el elemento ioSpecification…………………………

5.17. Elementos del metamodelo BPMN2 involucrados en la transformación

de datos …………………………………………………..………………….....

5.18. Relación para transformar los datos de entrada …………………………

5.19. Elementos del metamodelo ESTECO involucrados en la transformación

de datos …………………………………………………………….…………..

5.20. Relación para generar el elemento InputSets y añadirle los DataInputs

5.21. Relación para transformar los datos de salida …………………………..

75

76

76

77

78

81

81

84

86

86

87

88

89

90

90

92

93

94

95

95

96

97

98

99

100

101

Page 8: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

viii

5.22. Relación para generar el elemento OutputSets y añadirle los

DataOutputs ……………………………………………………………………

6.1. Entorno modeFRONTIER ………………………………………….…….

6.2. Flujo de trabajo para optimizar un motor de combustión ………………...

6.3. Transformación del nodo de inicio ……………………………………….

6.4. Primera parte de la transformación de tareas …………………………......

6.5. Segunda parte de la relación que transforma las tareas …………………..

6.6. Tercera parte de la relación que transforma las tareas ……………………

6.7. Relación propertyGTSuiteNode …………………………………………..

6.8. Generación de la propiedad Model………………………………………..

6.9. Generación de la propiedad propertyGTSuiteParameterModelInput…......

6.10. Transformación de los datos de entrada …………………………………

6.11. Transformación de los datos de salida …………………………………..

101

104

104

105

106

107

107

108

108

109

111

112

Page 9: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

1

Capítulo 1

Introducción

Hoy en día, las actividades de diseño en ingeniería y muchos otros campos de las ciencias

aplicadas requieren la ejecución de modelos computacionales con el fin de simular

experimentos. Este paso es usualmente automatizado a través de la ejecución de los llamados

flujos de trabajo científicos. En términos generales, un flujo de trabajo científico o ingenieril

es un proceso de negocio automatizado utilizado para ejecutar tareas de procesamiento

complejas [1] en las áreas científicas y en aplicaciones ingenieriles. Este tipo de flujos de

trabajo es ampliamente utilizado en las ciencias naturales, simulaciones computacionales,

química, medicina, ciencias ambientales, ingeniería, geología, astronomía, industria

automotriz, aeroespacial y otros campos industriales. Su uso se ha extendido también en las

tareas de optimización. El desarrollo de estos productos industriales complejos se modela

como un ciclo de optimización. Este ciclo incluye un proceso de ingeniería definido en

términos de la colaboración de varios servicios ingenieriles que, por lo general, tienen un gran

intercambio de información [2] [3].

Un gran número de formatos gráficos y de ejecución se encuentran en uso hoy en día.

Aunque los flujos de trabajo científicos o ingenieriles se han utilizado con éxito desde hace

muchos años, la mayoría de las herramientas que se utilizan para definirlos y ejecutarlos no

están basados en tecnologías estándar.

Por otra parte, la compañía ESTECO tiene una amplia experiencia en el ámbito de

flujos de trabajo de ingeniería aplicada en el contexto industrial. La misma ha desarrollado su

propio modelador y motor de flujo de trabajo. Aunque su modelo propietario ha demostrado

ser útil en el contexto de los procesos de ingeniería y cubre las necesidades actuales, la

utilización de un estándar permitirá la construcción de modelos unificados y estandarizados.

La situación es completamente diferente en el área de los procesos de negocio, donde

se han propuesto muchos estándares bien definidos y ampliamente utilizados, tanto para la

representación gráfica como para la ejecución de los mismos. La OMG junto con BPMI

(Business Process Modeling Initiative) han desarrollado la notación BPMN (Business Process

Page 10: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

2

Model and Notation) para el modelado de procesos de negocio [4] [5]. BPMN se considera la

notación más comprensible y utilizada para el modelado de procesos de negocio. Además es

una plataforma independiente y define una notación para la definición de los procesos.

Actualmente BPMN es un estándar ISO/IEC 19510:2013. BPMN también permite la

colaboración entre procesos de negocios de distintas organizaciones, es decir permite la

interrelación con otro proceso de negocio independiente que se ejecuta en otra empresa.

El objetivo principal de BPMN es proveer una notación realmente entendible para

todos los usuarios del negocio, desde los analistas hasta las personas del negocio quienes

manejarán los procesos. Por lo tanto, BPMN crea un puente estandarizado para cubrir la

brecha entre el diseño de procesos de negocio y la implementación de éstos. BPMN2 [4] es la

última definición del estándar para modelar procesos de negocios. Éste ha sido desarrollado

teniendo en cuenta algunas limitaciones y dándole mayor importancia a los objetos de datos.

De esta manera se hace posible interpretar y ejecutar directamente los modelos. La definición

de este nuevo estándar permite, por primera vez, extender el uso de flujos de trabajo de

negocios al campo de las ciencias ingenieriles. Sin embargo, uno de los principales obstáculos

para la adopción industrial de estándares es que existe una gran cantidad de flujos de trabajo

existentes actualmente utilizados por la industria que no pueden ser simplemente descartados.

Por otro lado, la Arquitectura Dirigida por Modelos (Model Driven Architecture -

MDA) [6] [7], implementación de la OMG (Object Management Group) para la Ingeniería

Dirigida por Modelos (Model-Driven Engineering- MDE) [8] [9], propone un proceso de

desarrollo de software en el cual la clave son los modelos y las transformaciones entre ellos.

En este proceso, el software es desarrollado construyendo uno o más modelos, y

transformando éstos en otros modelos o hasta llegar a código ejecutable. Teniendo en mente

este objetivo la OMG propone QVT (Query/View/ Transformation), un lenguaje estándar para

expresar consultas y definir transformaciones de modelos. Su especificación depende de otros

dos estándares de la OMG como son MOF y OCL [10]. La utilización de QVT para

especificar transformaciones, aporta reutilización de tecnologías que siguen estándares de la

OMG [10]. Con QVT es posible definir transformaciones genéricas entre metamodelos, de

esta manera cualquier instancia de un metamodelo puede ser transformado en una instancia de

otro metamodelo. QVT se basa principalmente en la definición de un lenguaje para las

consultas (Queries) sobre los modelos MOF, la búsqueda de un estándar para generar vistas

(Views) que muestran aspectos específicos de los sistemas modelados, y la definición de un

lenguaje para la descripción de transformaciones (Transformations) de modelos MOF.

1.1 Motivación y Contribuciones

Tanto los flujos de trabajo científicos como los ingenieriles difieren en muchos aspectos con

los flujos de trabajo de negocios. Por ejemplo, los flujos de trabajo de negocio suelen tratar

con transacciones discretas, en cambio los flujos de trabajo científicos o ingenieriles suelen

Page 11: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

3

trabajar con muchas herramientas de software interconectadas, grandes cantidades de datos

con múltiples fuentes de datos y en múltiples formatos. Además, por lo general los servicios

ingenieriles tienen una larga duración de ejecución y dependen del entorno de ejecución.

Incluso si bien, los flujos de trabajo ingenieriles se han utilizado con éxito desde hace tiempo,

la mayoría de las herramientas no siguen un estándar.

Como hipótesis, en este trabajo de tesis se intenta demostrar que es posible que un

modelo de flujo de trabajo ingenieril sea modelado con la nueva versión del estándar de

BPMN2, ya que ésta ha sido desarrollada teniendo en cuenta algunas limitaciones y dándole

mayor importancia a los objetos de datos.

Considerando que existen muchos flujos de trabajo ingenieriles ya diseñados y

utilizados actualmente por la industria que no pueden descartarse. Con el fin de proporcionar

soporte para estos flujos de trabajo, se ha propuesto un método para la transformación de los

flujos de trabajo propietarios de ESTECO existentes a flujos de trabajo estándar BPMN2. Este

enfoque proporcionará un incentivo adicional para que las empresas abandonen las

herramientas de modelado propietarias y comiencen a utilizar tecnologías estándar.

Sin embargo, las transformaciones no son directas. Existen actividades que poseen

propiedades adicionales y requisitos que los procesos de negocios estándares no poseen.

Afortunadamente, BPMN2 ha definido un mecanismo de extensión que permite añadir

construcciones necesarias sin romper el cumplimiento del estándar.

Como parte del método, este trabajo presenta una transformación que permite la

conversión de flujos de trabajo de ESTECO básicos a BPMN2.

La propuesta planteada en el presente trabajo, ha sido publicada en la siguiente revista:

Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos

Kavka "Towards the Standardization of Industrial Scientific and Engineering

Workflows with QVT Transformations”, International Journal On Advances in

Software, Soft13v6n12, 2013.

Además, ha sido aceptada en las siguientes conferencias de ámbito internacional y nacional:

Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos

Kavka, “Data Transformations using QVT between Industrial Workflows and

Business Models in BPMN”, Proceedings of the Seventh International Conference

on Software Engineering Advances ICSEA, IARIA, 2012.

Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos

Kavka, “Hacia una estandarización de workflows científicos e industriales con

BPMN2” 1er Congreso Nacional de Ingeniería Informática /Sistemas de

Información CoNaIISI‟2013, 2013.

Page 12: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

4

Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos

Kavka. “Extendiendo BPMN2 para soportar Workflows Científicos de ESTECO”

XV Workshop de Investigadores en Ciencias de la Computación (WICC), 2013.

Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos

Kavka. “Transformación de Workflows Científicos a BPMN2” XIV Workshop de

Investigadores en Ciencias de la Computación (WICC) 2012.

1.2 Trabajos Relacionados

La utilización de flujos de trabajo científicos e ingenieriles para la automatización de procesos

ha sido ampliamente analizada en la literatura [1]. Existen muchas implementaciones

comerciales y de código abierto. Los más utilizados por la comunidad de código abierto son

Kepler [16], Triana [17], Taverna [18], Pegasus [19] y KNIME [20], con nuevos entornos de

trabajo que aparecen continuamente. Sin embargo, todos estos entornos para flujos de trabajo

científicos o ingenieriles se basan en formatos propietarios no estándar. En el campo de

herramientas comerciales, existe muchas opciones como por ejemplo modeFRONTIER [2]

ampliamente utilizado en optimización ingenieril CAD/CAE. Sin embargo, una vez más, ellos

se basan en formatos propietarios.

Los flujos de trabajo científicos y de negocios poseen diferentes características debido

a su objetivo. En [19] se propone llevar flujos de trabajo de negocios y científicos juntos con

el fin de aprovechar las ventajas de ambos. Los autores presentan un enfoque y una

implementación basada en BPEL y Pegasus y demuestran que el enfoque puede ser

beneficioso para los científicos.

Varios trabajos en el campo de la ingeniería de software se relacionan con el concepto

de transformaciones entre modelos, y muchos de ellos utilizan BPMN para modelar procesos

de negocio.

Siguiendo la línea anterior, una transformación modelo a modelo entre PICTURE y

BPMN2 se presenta en [21]. PICTURE es un lenguaje de modelado de procesos de dominio

específico para el sector de la administración pública. La transformación permite modelar

procesos administrativos en PICTURE y obtener modelos BPMN2 para éstos

automáticamente, haciendo posible la implementación de procesos de soporte para ayudar al

gobierno electrónico.

Un ejemplo de aplicación se presenta en [22]. La misma muestra una transformación

automatizada de un modelo de proceso de negocio en un modelo de desempeño

parametrizado, obteniendo así importantes ventajas sobre la fácil personalización y una mejor

automatización.

Page 13: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

5

En [23], se presenta la generación de componentes de plataforma de negocios Java

EE6 desde procesos de negocio técnicos modelados con BPMN2. La generación se obtuvo

mediante la realización de tres transformaciones en el contexto MDA, realizadas con QVT

Relations y MOFScript. Este trabajo contribuye mejorando la productividad y la reducción de

los errores de diseño.

Una solución para el modelado de procesos de recorridos clínicos (RC) en términos de

modelos de procesos de negocio estándar es presentada en [24]. Para representar un RC como

un flujo de trabajo de proceso, fue desarrollado un mapeo semántico de alto nivel entre la

ontología RC y la ontología BPMN. Esta investigación muestra cómo un proceso específico

clínico definido con la ontología RC es mapeado a un flujo de trabajo en el estándar BPMN.

Este mapeo permite a los profesionales de la salud modelar un RC utilizando constructores de

modelos familiares a ellos. Una vez listos, los profesionales de la salud pueden transformar

este RC a un modelo de proceso de negocio y aprovechar así las definiciones estándar de los

procesos para representar y optimizar entornos clínicos a través de la incorporación de

herramientas de optimización de procesos.

Por otro lado, en [25] los autores presentan una solución de un caso de estudio de

transformación de modelos BPMN a modelos BPEL [15]. Esa solución implementa un puente

entre dos lenguajes de modelado de procesos de negocio, BPMN y BPEL. La solución

propuesta ha sido implementada utilizando ATL (AtlanMod Transformation Language).

En [26] se presenta una aproximación MDA para la definición de transformaciones

para modelos de procesos de negocio. Estas transformaciones están basadas en el uso de dos

plataformas independientes de flujos de trabajo universales, diagramas de actividad UML 2.0

y BPMN, junto con una plataforma de lenguaje específico, el lenguaje XPDL (XML Process

Definition Language) [39].

En el contexto de transformaciones se puede observar en [27] una transformación de

un diagrama de actividad UML 2.0 a BPEL, en la cual se desarrollan los aspectos de

comportamiento de los servicios web compuestos haciendo uso de un metamodelo MOF para

BPEL 1.1. Los autores trabajaron con un modelo de transformación de procesos de negocio

desde un PIM (Platform Independent Model), creado como un diagrama de actividad UML, a

un PSM (Platform Specific Model), modelado con BPEL4WS. Además introdujeron una

correspondencia entre los elementos de los diagramas de actividad UML y los elementos de

BPEL4WS. Para realizar esta transformación se ha utilizado reglas especificadas en OCL.

En la misma línea, los autores en [28] especifican con el lenguaje ATL la

transformación de un diagrama de actividad UML 2.0 (PIM) a los lenguajes BPEL y Java

(PSM). Analizando la correlación entre los metamodelos a través de un mapeo desde UML a

BPEL4WS. Este trabajo ofrece algunas ideas sobre la definición de mapeo y reglas de

transformación.

Page 14: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

6

También se han encontrado trabajos relacionados con las transformaciones de modelos

pero que no están asociados a los procesos de negocio.

En [29] los autores presentan una investigación sobre qué factores tienen un impacto

en el rendimiento de la ejecución de la transformación. Este estudio estima el rendimiento de

una transformación y permite elegir entre las implementaciones alternativas para lograr mayor

rendimiento. Los resultados de este estudio pueden ser utilizados por los implementadores de

los motores de transformación con el fin de mejorar el conjunto de herramientas disponibles

en la actualidad.

Los autores en [30], presentan tres conjuntos de relaciones QVT como un medio de

transformaciones implementados por un método dirigido por modelos para el desarrollo web.

Un conjunto transforma un modelo de entrada de alto nivel en un modelo abstracto específico

para web. Los otros dos conjuntos transforman el modelo abstracto para web en modelos

específicos para plataformas web.

Como puede observarse existen varios trabajos relacionados con las transformaciones

de modelos de procesos de negocio, pero hasta el momento no se ha encontrado un trabajo de

investigación el cual considere BPMN2 como modelador en el contexto de flujos de trabajo

industriales.

1.3 Objetivos

El objetivo de este trabajo es demostrar que es posible modelar procesos ingenieriles con

BPMN2. Además, lograr que un estándar como BPMN2 sea utilizado para procesos

ingenieriles permitiría unificar el modelado para todos los modeladores de procesos

propietarios. Esto permitiría garantizar mayor portabilidad entre las herramientas que soportan

el estándar BPMN2. En cuanto a un objetivo más general, se intenta mostrar que el uso de un

estándar para flujos de trabajo científicos e ingenieriles facilitará la colaboración entre

científicos y diseñadores industriales, mejorando la interacción entre los diferentes campos,

proporcionando así un vocabulario común para que los ingenieros interpreten adecuadamente

cualquier modelo científico e ingenieril.

Si bien la empresa ESTECO está actualmente trabajando para soportar el estándar, con

el fin de garantizar soporte para los flujos de trabajo existentes, se ha hecho necesario llevar a

cabo una transformación desde el metamodelo de ESTECO al metamodelo BPMN2. Esta

transformación permite la conversión de la mayoría de los flujos de trabajo industriales de

ESTECO a BPMN2 consintiendo su ejecución en motores BPMN2, con las debidas

extensiones para soportar las propiedades específicas de los flujos de trabajo de ESTECO.

Para lograr este objetivo es necesario alcanzar las siguientes metas:

Metamodelo de ESTECO en Ecore definido.

Page 15: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

7

Correspondencias entre los elementos del metamodelo de BPMN2 y los

elementos del metamodelo de ESTECO establecidas.

Transformación utilizando QVT entre el metamodelo ESTECO y BPMN2

especificada.

1.4 Organización del Informe

Este trabajo presenta una transformación para constructores seleccionados de un flujo de

trabajo de ingeniería industrial al estándar BPMN2, con el fin de presentar un método válido

para realizar una conversión de un flujo de trabajo a un estándar bien definido. En el presente

trabajo, se consideran también las transformaciones de los elementos más complejos basados

en extensiones de BPMN2.

A continuación se presenta la organización de este trabajo. En el capítulo 2 se

describen los Modelos de Negocio, se introducen los conceptos básicos de la notación BPMN

y se identifican los elementos que forman parte de un proceso de negocio. En el capítulo 3 se

muestran los principales conceptos relacionados a la Ingeniería Dirigida por Modelos (MDE)

y a la propuesta Arquitectura Dirigida por Modelos (MDA). Además se muestran los

principios que sustentan MDA, así como los tipos de modelos que la comprenden. También se

introduce la transformación de modelos, además se muestran los estándares involucrados a

MDA poniendo énfasis en el lenguaje de transformación de modelos QVT. En particular se

muestra QVT-Relations. En el capítulo 4 se muestran los metamodelos BPMN2 y ESTECO

utilizados en este trabajo. En el capítulo 5 se detalla paso a paso como ha sido la construcción

de la transformación, utilizando el lenguaje QVT, de ESTECO a BPMN2. En el capítulo 6 se

presenta un caso de estudio junto con una explicación de los resultados de la transformación

en términos de elementos XML. Finalmente se presentan las conclusiones y trabajos futuros.

Page 16: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

8

Capítulo 2:

Modelos de Negocio

Hoy en día existen muchos estándares bien definidos y ampliamente utilizados, tanto para la

representación gráfica como para la ejecución de los modelos. BPMN es considerada la

notación más comprensible y utilizada para el modelado de procesos de negocio. En este

capítulo se presentan dos pilares fundamentales para este trabajo. En primer lugar se presenta

el concepto de BPMN (Business Process Model and Notation), sus usos generales y se da una

breve introducción a sus elementos más importantes [4], con los cuales se pueden modelar

cualquier proceso de negocio. En segundo lugar se introduce el concepto de flujo de trabajo,

flujos de trabajo científicos, así como la descripción de los sistemas de flujo de trabajo

estandarizado por la WfMC (Workflow Management Coalition), el modelo de referencia que

estandariza los conceptos junto con su arquitectura, y la estrecha relación que mantiene con la

gestión de procesos de negocio.

2.1 Introducción

En la última década, los procesos de negocio han adquirido gran popularidad, y derivado de

ello han surgido diversos estudios al respecto. Un proceso de negocio es un conjunto de

actividades coordinadas, las cuales están diseñadas para producir una salida específica, ya que

su objetivo está bien definido. Su modelado es un área de interés para los analistas, quienes

definen o redefinen los procesos; para los desarrolladores, los cuales son los responsables de

implementar los procesos; y para los gerentes quienes monitorean y gestionan los procesos.

Por otro lado, una comprensión de como es el flujo de un proceso asegura eficiencia y

calidad en el proceso. El objetivo principal del modelado de procesos de negocio es la

definición de cómo será el flujo del proceso. Para el modelado de procesos de negocio es

necesario responder las siguientes preguntas [31]:

¿Cuál es el resultado del proceso de negocio?

¿Qué actividades se llevan a cabo dentro del proceso de negocio?

¿Cuál es el orden de las actividades?

¿Quién lleva a cabo las actividades?

Page 17: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

9

¿Qué documentos se intercambian en el proceso?

¿Cuán seguro es el proceso, y cómo puede ser extendido en el futuro?

Un eficiente proceso de modelado requiere un método que provea un enfoque bien

estructurado y controlado. Además es importante a la hora de modelar un proceso de negocio

poder utilizar una herramienta independiente de la implementación, y por lo tanto, poder

utilizar la especificación del proceso de negocio para diferentes plataformas. Varios métodos

han sido desarrollados a lo largo de los años. BPMI (Business Process Modeling Initiative)

junto con la OMG (Object Management Group) han desarrollado la notación BPMN para el

modelado de procesos de negocio [4] [5]. BPMN se considera la notación más comprensible y

utilizada para el modelado de procesos de negocio. Ésta define una notación para la definición

de procesos de negocio. BPMN también permite la colaboración entre procesos de negocios

de distintas organizaciones, es decir permite la interrelación con otro proceso de negocio

independiente que se ejecuta en otra empresa. BPMN 2.0 es la última definición del estándar

BPMN para modelar procesos de negocios. Éste ha sido desarrollado teniendo en cuenta

algunas limitaciones y dándole mayor importancia a los objetos de datos persiguiendo el

objetivo de poder interpretar y ejecutar directamente los modelos. Esta nueva definición del

estándar permite, por primera vez, la posibilidad de extender el uso de flujos de trabajo del

ámbito de procesos de negocio al ámbito de la ingeniería [32].

Un flujo de trabajo se define como la automatización total o parcial de un proceso de

negocio, durante el cual se intercambian documentos, información o tareas de acuerdo a un

conjunto de reglas establecidas [33]. El modelo que define la arquitectura para esta

automatización por medio de sistemas de flujos de trabajo ha sido definido por la WfMC [39].

Los flujos de trabajo ingenieriles, que comparten muchas propiedades con los conocidos

flujos de trabajo científicos, son muy utilizados en la industria actual.

Un flujo de trabajo industrial es un proceso de negocio automatizado, usualmente

utilizado para ejecutar tareas de procesamiento complejas que requiere muchas características

que la mayoría de los modelos de procesos de negocio no soportan actualmente [34]. Este tipo

de flujos de trabajo son ampliamente utilizados en las ciencias naturales, las simulaciones

computacionales, la química, la medicina, las ciencias ambientales, la ingeniería, la geología,

la astronomía, la industria automotriz y aeroespacial, entre otros campos.

La integración con plataformas del tipo Arquitectura Orientada a Servicios (Service

Oriented Architecture - SOA) y sistemas de Computación en las Nubes (Cloud Computing) es

esencial en el contexto de flujos de trabajo industriales, una característica que no es manejada

de modo adecuado con los típicos flujos de trabajo de negocio [1] [35].

2.2 ¿Qué es BPMN?

La Gestión de Procesos de Negocio (BPM) da apoyo para que los procesos de una

Page 18: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

10

organización sean más flexibles y receptivos a los cambios. BPM es una disciplina, que

combina las capacidades del software con la experiencia del negocio para acelerar la mejora

de los procesos y facilitar la innovación del negocio. Los estándares para BPM dan soporte a

la organización para aprovechar el poder del cambio a través de sus procesos de negocio,

utilizando una Arquitectura Orientada a Servicios (SOA) para acomodarse rápidamente a los

cambios del negocio [37].

BPMI junto con la OMG han desarrollado las últimas versiones del estándar BPMN.

El objetivo principal de BPMN es proveer una notación realmente entendible para todos los

usuarios del negocio, desde los analistas que crean el borrador inicial de los procesos, los

desarrolladores responsables de la implementación que llevará a cabo dichos procesos, y por

último, las personas de negocio quienes manejaran y supervisarán los procesos. Por lo tanto,

BPMN crea un puente estandarizado para la brecha entre el diseño de procesos de negocio y

la implementación de procesos. BPMN asegura que lenguajes diseñados para la ejecución de

procesos de negocio, tal como WS-BPEL (Web Services Business Process Execution

Language), puedan ser visualizados con una notación orientada a los negocios [4].

La intención de BPMN es estandarizar la notación y modelado de un proceso de

negocio frente a muchas diferentes notaciones de modelado y puntos de vista. Para esto,

BPMN provee un medio de comunicación entre los procesos y los usuarios del negocio,

implementadores del proceso, clientes y proveedores [4].

BPMN es una notación gráfica que específica que pasos se realizan en un proceso de

negocio, desde su inicio hasta el fin. La notación especifica cuál es la secuencia de las

actividades en un proceso, junto con los mensajes que las atraviesan o transitan entre los

distintos participantes que puede poseer el proceso.

En el 2001, BPMI comenzó a desarrollar BPML (Lenguaje de Modelado de Procesos

de Negocio, un lenguaje XML de ejecución de procesos) y surge así la necesidad de una

representación gráfica. Las personas involucradas en ese momento decidieron que una

notación orientada hacia las necesidades del usuario era necesaria, es decir que no se buscaba

una notación que represente el lenguaje de ejecución. Luego de más de dos años de trabajo el

grupo desarrolló BPMN 1.0 [15]. BPMN tenía dos objetivos contradictorios, por un lado

proveer una manera sencilla de utilizar la notación de modelado de procesos, accesible a los

usuarios empresariales; y por el otro lado ofrecer facilidades para traducir los modelos a una

forma ejecutable tal como BPEL [37]. Además perseguía los objetivos de [36]:

proveer una notación fácilmente entendible por todos los usuarios del negocio,

desde los analistas de negocio hasta la gente propia del negocio,

crear un puente estandarizado entre el diseño del proceso de negocio y su

implementación,

asegurar que los lenguajes para la ejecución de procesos de negocio puedan ser

visualizados con una notación común.

Page 19: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

11

En mayo de 2004, fue lanzada al público la especificación 1.0 de BPMN. Desde

entonces, más de 50 compañías han desarrollado implementaciones del estándar. En febrero

de 2006 la especificación 1.0 fue adoptada como un estándar de la OMG (luego de que BPMI

se incorporará a la OMG).

Los miembros de la OMG, a través de sus conocimientos y experiencias con respecto

a muchas notaciones existentes, buscaron consolidar las mejores ideas de estas notaciones

divergentes en una notación estándar única [4]. En febrero de 2008, la OMG publicó la

versión BPMN 1.1. La mayoría de los cambios en la versión 1.1, esclarecieron el documento

de la especificación en sí, haciendo su significado más explícito. Sin embargo, pocos cambios

gráficos fueron realizados a BPMN en la versión 1.1. La OMG pronto publicaría la versión

1.2. Esta versión no incluyó cambios significativos en el aspecto gráfico; los cambios fueron

solamente de redacción [37].

Actualmente se encuentra la versión 2.0 de BPMN. Esta última definición ha sido

desarrollada tomando como uno de sus objetivos la superación de las limitaciones que

impedían su uso en aplicaciones científicas y de ingeniería [4] [32]. Es precisamente la

definición de este nuevo estándar que permite por primera vez la posibilidad de extender el

uso de flujos de trabajo del ámbito de procesos de negocio al ámbito de la ingeniería. Esta

versión da mayor importancia a los objetos de datos persiguiendo el objetivo de poder

interpretar y ejecutar directamente los modelos.

2.3 ¿Qué es un Proceso de Negocio?

Un proceso describe una secuencia o flujo de actividades de una organización con el objetivo

de llevar a cabo un trabajo.

Como se ha mencionado anteriormente, un proceso de negocio es un conjunto de

actividades coordinadas, las cuales están diseñadas para producir una salida específica, ya que

su objetivo está bien definido. Las actividades contribuyen colectivamente a lograr los

objetivos de una organización. Los procesos de negocio de una organización se registran y se

publican en manuales de procedimientos, diagramas de flujo y hasta de manera oral. Son la

base operativa de una empresa y el éxito de la misma depende fuertemente de la eficiencia y

eficacia con que estos sean gestionados. Una mala gestión del proceso puede ocasionar altos

costos, baja productividad y tiempos de respuesta altos. Todo proceso de negocio interesante

puede involucrar una intervención humana [37].

2.4 Usos generales de BPMN

Pueden existir múltiples niveles de diagramas, dependiendo de la metodología utilizada para

el desarrollo de los modelos. Sin embargo, se debe tener en cuenta que BPMN es

Page 20: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

12

independiente de cualquier metodología específica de modelado de procesos.

El modelado de procesos de negocio persigue el objetivo de comprender que es lo qué

realiza una organización, quién lo realiza y cómo la realiza. Además es utilizado para

comunicar una amplia variedad de información a diferentes públicos, analistas, diseñadores,

arquitectos, etc. Un modelo de proceso de negocio, es una red de objetos gráficos

comprendida por actividades y flujos que definen el orden de ejecución.

BPMN está diseñado para cubrir muchos tipos de modelos y permite la creación de

una parte del proceso como así también del proceso de negocio completo, en diferentes

niveles de abstracción [36]. BPMN proporciona a las organizaciones la capacidad de definir y

comprender sus procesos de negocio internos y/o externos a través de un Diagrama de

Procesos de Negocio. En muchas situaciones, para la ejecución de un proceso, es necesaria la

colaboración de organizaciones externas al proceso, BPMN permite, de manera clara,

entender cómo se realiza esta comunicación entre las distintas organizaciones. A este tipo de

procesos se lo denominan Procesos de Negocio a Negocio (Business to Business – B2B)

Colaborativo.

Un proceso B2B colaborativo muestra las interacciones entre dos o más

organizaciones de negocio. Para este tipo de procesos los diagramas son utilizados para

mostrar una vista global de los mismos. Es decir, que no tienen la perspectiva de un

participante en particular, sino que muestran las interacciones entre los participantes. La

Figura 2.1 muestra un ejemplo de un proceso colaborativo.

Las actividades para los participantes de la colaboración pueden ser consideradas

"puntos de contacto" entre los participantes, es decir que el proceso define las interacciones

que son visibles para el público por cada participante. Por lo general cuando se está

modelando la comunicación entre dos o más organizaciones, no se muestran todas las

actividades ni el detalle de ellas [36].

Figura 2.1: Ejemplo de un proceso B2B colaborativo

Un proceso de negocio interno debería generalmente focalizarse en el punto de vista

de una única organización. Aunque en los procesos internos por lo general se muestran

interacciones con participante externos, en ellos sólo se definen las actividades que no suelen

ser visibles al público y por lo tanto, son actividades privadas. Si se utilizan carriles

Pacie

nte

Enviar

requerimiento

al doctor

Recibir

respuesta

Enviar

Síntomas

Recibir

prescripción

Consultori

o

Médic

o

Recibir

requerimiento Enviar

respuesta

Recibir

Síntomas

Enviar

prescripción

Page 21: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

13

(swimlanes) entonces un proceso de negocio interno estará contenido dentro de un sólo pool.

Los flujos de secuencia de los procesos están contenidos dentro de un pool y no pueden cruzar

las fronteras del pool. Los flujos de mensaje pueden cruzar la frontera del pool para mostrar

las interacciones que existen entre los diferentes procesos de negocio internos. De esta

manera, un sólo diagrama de proceso de negocio puede mostrar múltiples procesos de

negocios privados [36]. Más adelante se discuten los carriles, pools y flujos.

La Figura 2.2 muestra como en un diagrama de proceso de negocio se pueden observar

distintos niveles de detalle. Estos niveles dependen de la metodología utilizada para el

desarrollo del modelo y BPMN es independiente de cualquier metodología.

Figura 2.2: Ejemplo de un proceso con mínimo detalle

2.5 Elementos de BPMN

Uno de los objetivos para crear y desarrollar BPMN era construir un mecanismo simple y

comprensible para la creación de modelos de Procesos de Negocio, además de ser capaz de

manejar la inherente complejidad de los procesos de negocio. Así surge la necesidad de

organizar los aspectos gráficos de la notación en categorías específicas. Es decir que un

elemento clave de BPMN es la elección de formas e íconos utilizados para los elementos

gráficos identificadas en la especificación. La intención fue crear un lenguaje visual estándar

que todos los modeladores de procesos puedan reconocer y entender. BPMN proporciona un

pequeño conjunto de categorías para que el lector de un diagrama BPMN pueda reconocer

fácilmente los tipos básicos de elementos y entender el diagrama. Dentro de las categorías

básicas, se puede añadir información para soportar requerimientos de complejidad sin cambiar

radicalmente el aspecto del diagrama.

Las cinco categorías básicas de elementos son:

1. Objetos de Flujo (Flow Objects)

2. Datos (Data)

Clie

nte

Pro

ceso

de P

ed

ido

Recibir

pedido

+

Page 22: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

14

3. Objetos de conexión (Connecting Objects)

4. Carriles (Swimlanes)

5. Artefactos (Artifacts)

Objetos de flujos

Los objetos de flujos son los principales elementos gráficos que definen el

comportamiento de un proceso de negocio. Existen tres tipos de objetos:

Eventos (Events)

Actividades (Activities)

Compuertas (Gateways)

Eventos

Un evento es algo que sucede durante el curso de un proceso de negocio. Los eventos

afectan el flujo de los procesos y generalmente tiene una causa (disparador) o un impacto o

resultado. Los eventos se utilizan en distintas partes del proceso de negocio, pueden mostrar

el comienzo de una actividad, el fin de una actividad, el cambio de estado de un documento,

un mensaje que llega, la interrupción de un proceso, etc. BPMN ha restringido el uso de

eventos para incluir sólo los tipos de eventos que afectan el flujo o tiempo de las actividades

de un proceso.

Los eventos pueden ser de tres tipos:

Evento de inicio

Evento intermedio

Evento de fin

Evento de Inicio

Como su nombre lo indica, un evento de inicio indica donde un proceso comenzará.

Este tipo de evento da inicio al proceso, por lo tanto, no tendrá ningún flujo de secuencia

entrante, es decir que ningún flujo de secuencia puede entrar a un evento de inicio. La Figura

2.3 muestra la representación de un evento de inicio.

Figura 2.3: Evento de inicio

Existen diferentes tipos de eventos de inicio para indicar las diversas circunstancias

Page 23: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

15

que pueden disparar el comienzo de un proceso. Estas circunstancias pueden ser la llegada de

un mensaje o un tiempo determinado, como fecha y hora en la cual debe comenzar el proceso.

A estas circunstancias se las llaman factores desencadenantes. Todos los eventos BPMN

fueron diseñados para tener un centro abierto de manera tal de diferenciar los diferentes tipos

de disparadores que pueden suceder.

Evento Intermedio

Como su nombre lo indica, el evento intermedio indica que algo sucede/ocurre

después de que el proceso ha comenzado y antes de que termine el mismo. Este tipo de evento

afectará el flujo del proceso y por lo general se los pueden ver entre las actividades. También

un evento intermedio puede interrumpir el procedimiento normal de una actividad.

Los eventos intermedios se puede utilizar para:

mostrar los mensajes que deben ser enviados, o recibidos desde otra entidad de

negocios en el proceso, o desde la misma entidad,

mostrar retrasos dentro del proceso,

interrumpir el flujo normal a través de manejo de excepciones, o

mostrar el trabajo extra necesario para la compensación.

La Figura 2.4 muestra la representación gráfica de un evento intermedio.

Figura 2.4: Evento intermedio

Existen diferentes tipos de eventos intermedios, cada uno con su propia representación

gráfica. Cada tipo de eventos intermedios pueden lanzar o atrapar el evento. Algunos de ellos

pueden ser: tiempo, mensaje, señales, error, cancelación, etc.

Evento de Fin

Como su nombre lo indica, el evento de fin indica donde un proceso finalizará, o más

específicamente, donde un "camino" dentro de un proceso termina1. Este tipo de evento da fin

al proceso, por lo tanto, no tendrá ningún flujo de secuencia saliente, es decir que ningún flujo

de secuencia puede salir de un evento de fin. La Figura 2.5 muestra un evento de fin.

1 Cuando se modelan threads se hace referencia a “caminos”

Page 24: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

16

Figura 2.5: Evento de fin

Existen diferentes tipos de eventos de fin que indican las distintas categorías de los

resultados de los procesos. Un resultado es algo que ocurre al final de un camino particular

del proceso, por ejemplo un mensaje es enviado, una señal, entre otros. Todos los eventos de

fin lanzan un resultado. Cada uno de los tipos de evento de fin se diferencia con su propia

representación gráfica porque dentro del círculo del evento poseen un ícono el cual

representa: un mensaje, una señal, un terminal, una excepción, cancelar, entre otros.

Actividades

Una actividad representa una unidad de trabajo que es realizado o ejecutado dentro de

un proceso de negocio [38]. Una actividad generalmente lleva un tiempo para realizarla,

supondrá uno o varios recursos, suelen requerir algún tipo de entrada, y por lo general

producen algún tipo de salida. Las actividades representan puntos en un flujo de proceso en

donde se realizan trabajos. Estas actividades son elementos ejecutables en un proceso BPMN.

La Figura 2.6 muestra la representación gráfica de una actividad.

Figura 2.6: Actividad

Dentro de un proceso pueden existir tres tipos de actividades: tarea (tareas atómicas),

sub-proceso (no atómicas - tareas compuestas) y Call-Activity (subproceso reutilizable) [4].

Tareas

Una tarea se representa en un modelo de negocio con el mismo gráfico que una

actividad [38]. Una tarea se utiliza cuando el trabajo en el proceso no puede ser dividido en

mayor nivel de detalle. Una tarea representa una acción, no una función o estado.

Existen diferentes tipos de tareas identificadas en BPMN para separar los tipos de

comportamiento inherente que las tareas puedan representar. La Figura 2.7 muestra estos tipos

de tareas y ellas se diferencia gráficamente por un ícono en la esquina izquierda superior del

rectángulo. A continuación, se detallan estos tipos de tareas definidos en el estándar:

Abstracta (None): Tarea genérica o indefinida, se utiliza frecuentemente

durante las primeras etapas del desarrollo del proceso.

Usuario (User): Es un típico flujo de trabajo que lleva a cabo un humano con la

ayuda de una aplicación de software y que está programada a través de una

Page 25: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

17

Abstracta Usuario Manual Envío

Recibo Servicio Script Regla de Negocios

lista de tareas.

Manual (Manual): Es una tarea que se espera llevar a cabo sin la ayuda de

ningún motor de ejecución de procesos de negocio o cualquier otra aplicación.

Un ejemplo podría ser un técnico de telefonía instalando un teléfono.

Envío (Send): Está diseñada para enviar un mensaje a un participante externo

(en relación al proceso). Una vez que el mensaje ha sido enviado, la tarea se ha

completado. Este tipo de mensaje es enviado a través de un flujo de mensaje.

Recepción (Receive): Está diseñada para esperar que llegue un mensaje de un

participante externo (en relación al proceso). Una vez que el mensaje ha sido

recibido, la tarea se ha completado. Este tipo de mensaje es recibido a través de

un flujo de mensaje.

Servicio (Service): Es una tarea que utiliza algún tipo de servicio, el cual puede

ser servicio web o una aplicación automatizada.

Script: Este tipo de tarea se ejecuta mediante un motor de procesos de negocio.

El modelador o implementador define el script en un lenguaje que el motor

puede interpretar. Cuando la tarea está lista para comenzar, el motor ejecutará

el script. Cuando el script es completado, la tarea finaliza.

Regla de Negocio: Son expresiones formuladas a través de reglas que serán

ejecutadas a través de un motor.

Figura 2.7: Tipos de Tareas

Sub-Procesos

Un sub-proceso representa una actividad la cual puede dividirse en un nivel de detalle

más fino. Un sub-proceso es un objeto gráfico dentro de un proceso, pero también puede ser

"expandido" para mostrar un proceso de nivel inferior. Existen dos representaciones gráficas

para los sub-procesos:

Colapsado: Los detalles del sub-proceso no son visibles en el diagrama. Su

representación se muestra en la Figura 2.8.

Page 26: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

18

Call Activity llamando a Tarea de Usuario Global

Call Activity llamando a un Proceso (Colapsado)

Call Activity llamando a un Proceso (Expandido)

Figura 2.8: Sub-Proceso colapsado

Expandido: Este tipo de sub-proceso muestra los detalles del mismo, es decir

que los detalles son visibles dentro de los límites del sub-proceso (ver Figura

2.9).

Figura 2.9: Sub-Proceso expandido

Call Activity

Un Call Activity identifica un punto en el proceso donde otro proceso o una tarea

global son utilizadas. El Call Activity actúa como "envoltorio" para la invocación de un

proceso o tarea global dentro de la ejecución. En BPMN 2.0 un Call Activity corresponde a

sub-procesos reutilizables de BPMN 1.2. Un sub-proceso de BPMN 2.0 corresponde al sub-

proceso embebido de BPMN 1.2.

Un objeto Call Activity comparte la misma forma que las tareas y sub-proceso. Sin

embargo, su objetivo determinará los detalles de la forma. La Figura 2.10 muestra los tipos de

Call Activity que existen.

Figura 2.10: Tipos de Call Activity

Page 27: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

19

Compuertas (Gateways)

Las compuertas son utilizadas para controlar los flujos de los procesos a través de los

flujos de secuencia que divergen o convergen dentro en un proceso [31]. Es decir, una única

compuerta puede tener múltiples entradas y múltiples flujos de salida. Para una mejor práctica

de las compuertas, las herramientas y los modeladores utilizan dos compuertas secuenciales

para converger primero y luego para divergir los flujos de secuencia. Si el flujo del proceso no

necesita ser controlado, las compuertas no son necesarias. El término "compuerta" implica

que existe un mecanismo de compuerta que permite o impide el paso a través de la misma.

Una compuerta divide el flujo cuando éste tiene múltiples flujos de secuencia salientes y

unificará el flujo cuando éste tiene múltiples flujos de secuencia entrantes [4].

Las compuertas no representan "trabajos a realizar" se considera que tienen un efecto

nulo sobre el funcionamiento del proceso en ejecución. Existen diferentes formas de controlar

un flujo de un proceso, para esto existen diferentes tipos de compuertas. Todos comparten la

misma forma básica, pero ellos se diferencian en los símbolos internos que poseen, los cuales

dependen de su comportamiento. Es decir, que dependiendo del tipo de decisión se puede

tener una compuerta particular. Entonces las compuertas se pueden dividir en múltiples tipos

como muestra la Figura 2.11.

Figura 2.11: Tipos de Compuertas

Una compuerta exclusiva divergente (decisión) es utilizada para crear caminos

alternativos dentro de un flujo de proceso. Esto es básicamente, el "punto de desvío en un

camino" para un proceso. Para una instancia de un proceso, sólo uno de los caminos puede ser

tomado. Un ejemplo de este tipo de compuerta puede verse en la Figura 2.12.

Figura 2.12: Compuerta Exclusiva divergente

Una compuerta exclusiva convergente se utiliza para unir caminos alternativos. Este

Exclusivo Inclusivo Paralelo Complejo Basado en eventos

Xo +

Page 28: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

20

tipo de compuerta puede observarse en la Figura 2.13.

Figura 2.13: Compuerta Exclusiva convergente

Una compuerta inclusiva divergente (decisión incluida) se puede utilizar para crear

caminos alternativos o caminos paralelos dentro de un flujo de proceso. Su representación se

muestra en la Figura 2.14. A diferencia de la compuerta exclusiva, todas las expresiones de

condición son evaluadas. La evaluación de una condición a verdadera no excluye la

evaluación de las otras expresiones de condición. Puesto que cada camino se considera que es

independiente. Un camino por defecto puede ser tomado si ninguna condición evalúa en

verdadero. Si no se especifica un camino por defecto y ninguna de las expresiones evalúan a

verdadero se produce una excepción en tiempo de ejecución.

Figura 2.14: Compuerta Inclusiva divergente

Una compuerta inclusiva convergente se utiliza para unir una combinación de caminos

alternativos y paralelos de la misma manera que sucede con las compuertas exclusivas

convergentes.

Una compuerta paralela es utilizada para sincronizar o combinar flujos paralelos y

crear flujos paralelos. Cada camino saliente representa un hilo concurrente del proceso, es

decir que se solapan en tiempo de ejecución. Los caminos paralelos pueden unirse o

separarse. En éste último caso debe existir una compuerta paralela que una los caminos que

están ejecutándose paralelamente. La Figura 2.15 muestra este tipo de compuerta.

Page 29: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

21

Figura 2.15: Compuerta Paralela

Las compuertas complejas se utilizan cuando se necesita manejar situaciones de

comportamientos complejos que las otras compuertas no pueden soportar. En la Figura 2.16

se puede observar dicha compuerta. Una expresión se utilizará para describir el

comportamiento exacto. Por ejemplo, esta expresión podría especificar que se necesitan tres

de cinco flujos de secuencia entrantes para activar la puerta de enlace. Las compuertas

complejas a diferencia de las otras compuertas, poseen un estado interno, el cual está

representado por un atributo de instancia booleano, que inicialmente es verdadero y se

convierte en falso después de la activación.

Figura 2.16: Compuerta Compleja

Una compuerta basada en eventos representa un punto de bifurcación en el proceso

donde los caminos alternativos que siguen a la compuerta se basan en eventos que se

producen, en lugar de la evaluación de las expresiones (al igual que las compuertas exclusivas

o inclusivas). Un evento específico, por lo general la recepción de un mensaje, determina el

camino que se tomará. Básicamente, la decisión es tomada por otro participante que no es

Page 30: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

22

visible al proceso, por lo tanto, se requiere el uso de la compuerta basada en eventos. La

representación de este tipo de compuerta se puede observar en la Figura 2.17.

Figura 2.17: Compuerta Basada en Eventos

Datos

Uno de los cambios más significativos en la última versión del estándar BPMN

concierne al modelado de datos y flujo de datos. En la versión 1.2 los objetos de datos eran

considerados artefactos o anotaciones sin semántica ni reglas. En la última versión los objetos

de datos pasaron a ser un elemento de primer nivel con semántica. En esta nueva versión

también se incluyen los almacenes de datos (data stores). Estas nuevas definiciones permiten

construir diseños de procesos ejecutables [38]

Los datos están representados con cuatro elementos:

Objetos de Datos (Data Objects)

Almacén de Datos (Data Stores)

Datos de Entrada (Data Inputs)

Datos de Salida (Data Outputs)

Objetos de Datos

El constructor principal para el modelado de datos dentro del flujo de procesos es el

elemento objeto de datos. Un objeto de datos tiene un ciclo de vida bien definido. La Figura

2.18 muestra su representación gráfica.

Figura 2.18: Objeto de Datos

Page 31: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

23

Los objetos de datos se muestran visualmente en el diagrama y deben estar contenidos

dentro de los elementos de un proceso o sub-proceso. Las referencias a objetos de datos son

una manera de reutilizar objetos de datos en el mismo diagrama. Con ellos se pueden

especificar diferentes estados de un mismo objeto de datos en diferentes puntos de un proceso.

Los objetos de datos actúan como entradas y salidas de las tareas. Un ejemplo de su

uso puede verse en la Figura 2.19

Figura 2.19: Ejemplo del uso de Objeto de Datos

Almacén de Datos

Un almacén de datos representa datos persistentes, tales como almacenamiento de

información en una base de datos, sistema de negocios, etc., pero no representa una base de

datos o un sistema en su totalidad [38]. Proporciona un mecanismo para que las actividades

puedan consultar o actualizar información almacenada que persistirá más allá del alcance del

proceso. Su notación puede verse en la Figura 2.20. El mismo almacén de datos se puede

visualizar a través de una referencia al almacén de datos, en uno o más lugares en el proceso.

Figura 2.20: Almacén de Datos

Datos de Entrada y Salida

Las actividades y los procesos necesitan frecuentemente datos en orden para poder ser

ejecutados. Además ellos pueden producir datos como resultados de la ejecución. Los

requerimientos de datos se capturan como datos de entrada. Los datos que son producidos por

la ejecución de las actividades y/o procesos se capturan mediante datos de salida. No todos los

tipos de actividades definen entradas y salidas, sólo las tareas, las tareas globales y los

procesos pueden definir los requerimientos de datos. Los sub-procesos embebidos no deben

definir datos de entrada y datos de salidas directamente, indirectamente podría hacerlo.

Orden

Almacén de

Datos

Page 32: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

24

Datos de Entrada

Un dato de entrada es la declaración de un tipo particular de dato que será utilizado

como entrada para una actividad y/o un proceso. Puede haber múltiples datos de entrada.

Los datos de entrada se muestran visualmente en un diagrama de un proceso para

expresar las entradas del nivel superior del proceso o para mostrar las entradas a un proceso

llamado (es decir, una referencia a un Call Activity, donde el Call Activity ha sido expandido

para mostrar el proceso llamado dentro del proceso en el cual participa).

La representación de los datos de entrada se muestra en la Figura 2.21.

Figura 2.21: Dato de Entrada

Como se mencionó anteriormente, los datos de entrada son visibles en el nivel superior

del proceso, pero no pueden ser visualizados aquellos que posee una tarea.

Datos de Salida

Un dato de salida es la declaración de un tipo particular de dato que puede producir

una salida como resultado de una ejecución. Puede haber múltiples datos de salida.

Los datos de salida se muestran visualmente en un diagrama para expresar los

resultados del proceso.

La representación de los datos de salida puede observarse en la Figura 2.22.

Figura 2.22: Dato de Salida

De igual manera que los datos de entrada, los datos de salida son visibles en el nivel

superior del proceso, pero no pueden ser visualizados aquellos que posee una tarea.

Objetos de conexión

Los objetos de conexión son los encargados de conectar los elementos que pueden

aparecer en un proceso de negocio. Existen cuatro tipos de conectores:

Flujo de Secuencia (Sequence Flows)

Flujo de Mensajes (Message Flows)

Asociaciones (Associations)

Asociaciones de Datos (Data Associations)

Page 33: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

25

Flujo de Secuencia

Un flujo de secuencia se utiliza para mostrar la secuencia en que las actividades son

ejecutadas en un proceso. Los flujos de secuencias poseen un origen y un destino. Ellos son

los encargados de conectar eventos, actividades y compuertas, siguiendo una serie de reglas o

restricciones, la Figura 2.23 muestra las posibles conexiones. Lo más importante es que los

flujos de secuencia no pueden cruzar los límites de un sub-proceso o de un proceso.

Figura 2.23: Reglas de Conexión para los Flujos de Secuencia

La Figura 2.24 muestra la representación de los flujos de secuencia.

Figura 2.24: Flujo de Secuencia

Un flujo de secuencia puede poseer una expresión de condición. Si la expresión evalúa

a verdadero el flujo continúa normalmente, si la expresión evalúa a falso el flujo no continúa.

Este tipo de flujos se utilizan cuando el origen del flujo de secuencia es una compuerta o una

actividad. La Figura 2.25 muestra su representación.

Desde/a

Page 34: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

26

Figura 2.25: Flujo de Secuencia Condicional

Un flujo de secuencia que tiene una compuerta exclusiva, inclusiva o compleja o tiene

una actividad como fuente puede también ser definido como un flujo de secuencia por

defecto. Su representación se muestra en la Figura 2.26.

Figura 2.26: Flujo de Secuencia por Defecto

Las actividades pueden tener uno o más flujos de secuencia de entrada y uno o más

flujos de secuencia de salida. Todos los flujos de secuencia de entrada son totalmente

independientes entre ellos.

Los eventos de inicio sólo tienen flujos de secuencia de salida. Los eventos de fin

tienen una restricción similar pero opuesta para las conexiones, es decir que sólo tienen flujos

de secuencia de entrada.

Flujo de Mensajes

Un flujo de mensaje se utiliza para mostrar la secuencia de mensajes entre dos

participantes que están preparados para enviarlos y recibirlos. En BPMN, los participantes son

representados por pools.

Un flujo de mensajes debe conectar dos pools separados. No pueden conectar dos

objetos dentro del mismo pool ya que esto lo hacen los flujos de secuencia y los flujos de

datos. La Figura 2.27 muestra su representación.

Figura 2.27: Flujo de Mensaje

Las interacciones entre los pools son manejadas por los flujos de mensajes. Cuando el

pool se ve como una caja negra, el flujo de mensajes se conecta a su límite. Cuando un pool

tiene elementos del proceso, el flujo de mensajes se conecta a estos elementos.

Asociaciones

Una asociación es utilizada para asociar información y artefactos con elementos

gráficos BPMN, ya sean objetos de flujos o anotación de texto. Su representación gráfica se

muestra en la Figura 2.28.

Page 35: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

27

Figura 2.28: Asociación

Las anotaciones de texto es un mecanismo para proporcionar información adicional

para el lector del modelo BPMN. El objeto de anotación de texto puede ser conectado a un

objeto específico con una asociación, pero éste no afectará al flujo del proceso. El texto se

coloca dentro de los límites de un rectángulo abierto (ver Figura 2.29).

Figura 2.29: Anotaciones de Texto

Asociaciones de Datos

Una asociación de datos es utilizada para mover datos entre objetos de datos,

propiedades, entrada/salidas de actividades, procesos y tareas globales. Una asociación de

datos tiene origen y destino; cuando la asociación de datos es ejecutada, el dato del origen de

la asociación es copiado en el destino.

Una asociación de datos puede representarse visualmente como una línea punteada

generalmente con dirección. La Figura 2.30 muestra un ejemplo de las asociaciones de datos.

Figura 2.30: Asociación de Datos

Las asociaciones de datos son utilizadas en las diferentes etapas del proceso y en el

ciclo de vida de una actividad, entonces sus posibles fuentes pueden variar dependiendo de la

etapa en la cual se encuentre.

Una asociación de datos dirigida hacia un almacén de datos representa una

actualización sobre el almacén, mientras que una asociación de datos que sale de un almacén

representa una consulta sobre el mismo [38].

Un ejemplo de la utilización de las asociaciones de datos puede verse en la Figura

Orden

Page 36: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

28

2.31, en ella se observan asociaciones de datos hacia y desde un objeto de datos, y una

asociación de datos hacia un almacén.

Figura 2.31: Ejemplo de utilización de las Asociaciones de Datos

Carriles (Swimlanes)

Para dividir y organizar actividades en un diagrama, BPMN utiliza los carriles.

Existen dos maneras de agrupar los elementos primarios que pueden aparecer en un proceso

de negocio:

Pools

Carril (Lanes)

Pool

Un pool representa un participante en un proceso. Un pool contiene elementos de flujo

básicos (eventos, actividades y compuertas). Además actúa como un contenedor gráfico para

particionar un conjunto de actividades de otros pools, como sucede en un contexto Negocio-a-

Negocio (Business to Business - B2B). Como se mencionó anteriormente, los pools pueden

ser vistos como una “caja negra” o una “caja blanca”. Si se ve como una “caja negra”

significa que no se requiere contener a un proceso. Si se observa como una “caja blanca”

significa que se pueden ver los elementos de flujos dentro del pool. La Figura 2.32 muestra la

representación gráfica de un pool.

Figura 2.32: Pool

Como se observa en la Figura 2.32, el pool puede poseer una etiqueta (Nombre), pero

debe estar separada de los contenidos del pool por una línea. Generalmente esta etiqueta

representa el nombre del proceso.

Orden

Cuenta

Cliente

Nom

bre

Page 37: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

29

Uno solo pool puede presentarse sin límites, pero si existe más de un pool en el

diagrama éstos deben tener límites (ver Figura 2.33).

Figura 2.33: Ejemplo de un proceso con más de un Pool

Los flujos de secuencia pueden cruzar los límites entre los carriles de un pool, pero no

pueden cruzar los límites de un pool, ya que esto se realiza a través de los flujos de mensajes,

como se mencionó anteriormente.

Carril

Un carril representa una sub-división dentro de un pool. Un carril se representa de la

misma manera que el pool. También posee una etiqueta pero ésta no debe estar separada por

una línea de los contenidos del carril (excepto en los casos el caso de que existan sub-

Carriles). La Figura 2.34 muestra su representación gráfica.

Figura 2.34: Dos Carriles en un Pool

Los carriles se utilizan para organizar y categorizar actividades dentro de un pool, pero

su significado es exclusivamente para el modelador. Los carriles se pueden anidar. Un

ejemplo de esto sería modelar un conjunto exterior de carriles para los departamentos de una

empresa y un conjunto interior de los carriles para los roles dentro de cada departamento.

BPMN no especifica la utilización de los carriles. Ellos se utilizan generalmente para

mostrar roles internos, como por ejemplo gerentes, vendedores, clientes, etc., o para mostrar

Pa

cie

nte

Recibir

requerimiento Enviar

respuesta

Recibir

Síntomas

Enviar

prescripción

Nom

bre

Nom

bre

Nom

bre

Page 38: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

30

sistemas, departamentos internos a una empresa, por ejemplo el departamento de finanzas,

etc.

Artefactos

Un artefacto es utilizado para proveer información adicional a un proceso. Existen dos

tipos de artefactos estandarizados, pero en las herramientas de modelado se pueden encontrar

más. Los artefactos incluidos en el estándar son:

Grupo (Group)

Anotación de Texto (Text Annotation)

Grupo

Un grupo es un mecanismo visual para agrupar informalmente elementos en un

diagrama. Su representación se puede observar en la Figura 2.35.

Figura 2.35: Un Grupo

Los grupos no pueden ser conectados a través de flujos de secuencia o flujos de

mensajes porque no son actividades u objetos de flujo, son artefactos. Es decir, un grupo no

posee las restricciones de los pools y de los carriles, esto quiere decir que los grupos pueden

extenderse a través de los límites de un pool. Frecuentemente se utilizan para identificar las

actividades que existen dentro de una transacción B2B.

Anotación de Texto

Como se mencionó anteriormente, una anotación de texto es un mecanismo para

proporcionar información adicional para el lector del modelo BPMN, ya que no afectará al

flujo del proceso. El texto se coloca dentro de los límites de un rectángulo abierto. Su

representación se puede observar en la Figura 2.36.

Figura 2.36: Un Anotación de Texto como Artefacto

La Anotación de Textoprovee información adicional

Page 39: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

31

2.6 Flujos de Trabajo (Workflows)

La Coalición de Gestión Workflow (Workflow Management Coalition – WfMC), unas de

principales organizaciones que desarrolla y promociona estándares en el campo de flujo de

trabajo, define flujo de trabajo como: “la facilitación computarizada o la automatización de

procesos de negocio, en su totalidad o en parte.”[39]

Un flujo de trabajo es considerado como un conjunto de uno o más procedimientos o

actividades relacionadas, que en conjunto se realizan para lograr un objetivo de negocio,

generalmente dentro del contexto de una organización la cual define roles funcionales y

relaciones entre ellos [39].

Un sistema de gestión de flujo de trabajo proporciona la automatización de los

procedimientos de un proceso de negocio. Hollingsworth en [39] define el Sistema de Gestión

de Flujo de Trabajo (SGFT) como: “Un sistema que define completamente, gestiona y ejecuta

"workflows" a través de la ejecución de software cuya orden de ejecución está dada por una

representación informática de la lógica del workflow.”

Los flujos de trabajo tienen como misión apoyar procesos estructurados orientados a la

administración, en los cuales intervienen varios actores. Los beneficios no sólo son respecto al

ahorro de tiempo en el manejo de papeles, sino que también los flujos de trabajo permiten:

conectar las actividades y aplicaciones que pertenecen a un mismo proceso,

apoyar la coordinación de las personas,

dar seguimiento a las tareas,

evaluar la efectividad en el cumplimiento de los compromisos,

reconfigurar procesos sin tocar los sistemas.

2.6.1 Sistemas de Gestión de Flujos de Trabajo

Los SGFT pueden ser implementados de diferentes maneras como resultado de la utilización

de diferentes plataformas y tecnologías. Pueden ir desde un pequeño grupo de trabajo a una

gran organización. No obstante, todos los SGFT muestran ciertas características comunes. Al

más alto nivel, todos los SGFT se pueden caracterizar como la prestación de soporte en tres

áreas funcionales [39]:

Las funciones en tiempo de diseño, dedicadas para definir y modelar procesos

de flujos de trabajo con todas sus actividades.

Las funciones de control en tiempo de ejecución, relacionados con la gestión

de los procesos que controlan el entorno operativo y ejecutando las diversas

actividades que se manejan como parte de cada proceso.

Las interacciones en tiempo de ejecución con los usuarios humanos y

herramientas informáticas para el procesamiento de los distintos pasos de la

actividad.

Page 40: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

32

Las características básicas de los SGFT y las relaciones entre estas funciones

principales pueden verse en la Figura 2.37.

Figura 2.37: Características de los SGFT [39]

2.6.2 Estándares para modelado de flujos de trabajo

Para poder modelar los flujos de trabajo es necesario un lenguaje o una herramienta de

modelado. Estos lenguajes o herramientas pueden ser clasificados como formales y no

formales. Además en esta clasificación se puede observar aquellas que poseen un ambiente

gráfico para el modelado y las que no.

Las herramientas de modelado formales, se basan en matemática y permiten que un

modelo pueda ser analizado y verificado. De esta manera, logran asegurar el mayor grado de

ausencia de errores. La desventaja que poseen es que requieren más conocimiento por parte

del modelador. Algunos ejemplos de éstas son: redes de Petri y máquinas de estados.

Las herramientas informales permiten construir modelos fáciles de comprender, sin

embargo, no es posible verificarlos, lo cual implica que se debe tener el sistema desarrollado e

implementado para poder verificar que todos sus módulos funcionen correctamente. Algunos

ejemplos de estas herramientas son: UML, BPMN, Diagramas IDEF, modeFRONTIER, entre

otros.

Por otra parte, un proceso de flujo de trabajo puede ser modelado desde distintas vistas

o perspectivas. Cada vista representa algo que se considera importante para un proceso. Se

puede considerar las siguientes perspectivas [40]:

Perspectiva de flujo de control (o de procesos), la cual describe las actividades

y su ejecución.

Perspectiva de datos, la cual delimita y describe el procesamiento de datos

Page 41: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

33

sobre la perspectiva de control.

Perspectiva de recursos, la cual provee la estructura organizacional (personas y

dispositivos que poseen un rol responsable en las actividades).

Perspectiva operacional, la cual describe las acciones elementales ejecutadas a

través de actividades donde las acciones son mapeadas desde aplicaciones.

La WfMC fue la pionera en dar los primeros pasos para desarrollar y promover los

SGFT. Estableciendo estándares se promovería el uso de SGFT ya que facilitarían la creación,

desarrollo y análisis de los sistemas. La WfMC definió una serie de estándares entre los que

se destaca el Modelo de Referencia [39]. Este modelo describe la arquitectura básica de un

SGFT.

2.6.3 Flujos de Trabajo Científicos

Un flujo de trabajo científico o ingenieril es un proceso de negocio automatizado. Este tipo de

flujo es generalmente utilizado para ejecutar tareas de procesamiento computacional

complejas en áreas de aplicaciones científicas o ingenieriles. Además, es ampliamente

utilizado en ciencias naturales, simulaciones computacionales, química, medicina, ciencias

ambientales, ingeniería, geología, astronomía, industria automotriz y aeroespacial, entre otros

campos [34]. También se puede considerar a los flujos de trabajo científicos como secuencias

de pasos analíticos que pueden implicar, por ejemplo, acceso y consultas a base de datos,

análisis de datos relacionados a la minería, incluyendo trabajos computacionalmente

intensivos en equipos de clúster de alto rendimiento [41].

El paradigma de flujos de trabajo para aplicaciones científicas como Grids2 puede

ofrecer muchas ventajas tales como [42]:

Capacidad de crear aplicaciones dinámicas que orquestan recursos distribuidos.

Utilización de los recursos, que se encuentran en un dominio particular, para

incrementar el rendimiento y reducir los costos de ejecución.

Integración de múltiples equipos que participan en la gestión de las diferentes

partes del flujo de trabajo, promoviendo así la colaboración entre

organizaciones.

Los flujos de trabajo científicos se están convirtiendo en un mecanismo importante

para los científicos para combinar la gestión científica de datos, análisis, simulación y tareas

de visualización. Las características y requerimientos de los flujos de trabajo científicos

suelen superponerse a los flujos de trabajo de negocios. Pero existen diferencias entre ellas,

algunas diferencias son significativas [43]:

Los flujos de trabajo de negocio operan con datos que generalmente están

2 Federación de los recursos informáticos distribuidos para alcanzar un objetivo común. Puede ser pensado como

un sistema distribuido con cargas de trabajo no interactivos que involucran a un gran número de archivos

Page 42: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

34

almacenados en bases de datos. Por el contario, los flujos de trabajo científicos

operan con grandes cantidades de datos, complejos y heterogéneos. Estos datos

son generalmente almacenados en grandes archivos y codificados en distintos

formatos, dependiendo del campo científico que se esté modelando.

Los flujos de trabajo científicos pueden ser computacionalmente intensivos y

pueden producir datos complejos que pueden ser reutilizados por otros flujos

de trabajo.

Los flujos de trabajo de negocio y su ejecución están enfocados en los flujos de

control y los eventos, mientras que los flujos de trabajo científicos tienden a

tener modelos de ejecución con mucho manejo de datos.

2.6.4 Modelo de referencia de flujos de trabajo

El Modelo de Referencia de Flujo de Trabajo que propuso la WfMC se desarrolló partiendo

de una estructura de aplicación de flujo de trabajo genérica, a través de la identificación de

interfaces dentro de la estructura, las cuales permiten que los productos puedan interoperar en

diferentes niveles. Los sistemas de flujos de trabajo contienen componentes genéricos que

pueden interactuar y los productos están contenidos en estos componentes [39].

Como se dijo anteriormente, para lograr la interoperabilidad entre los productos de

flujos de trabajo, es necesario un conjunto estandarizado de interfaces y formatos para el

intercambio de datos entre los componentes.

Por otro lado, uno de los objetivos de la WfMC fue definir estándares para el

desarrollo de SGFT, para esto brinda un marco general para la construcción de los mismos.

El modelo de referencia identifica áreas funcionales distintas para luego desarrollar las

especificaciones para la implementación de estas áreas. De esta manera asegura la

interoperabilidad entre los distintos SGFT y la integración con otras aplicaciones

informáticas. El modelo de referencia de flujos de trabajo se muestra en la Figura 2.38.

Figura 2.38: Modelo de Referencia: Componentes e Interfaces [39]

Page 43: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

35

En la Figura 2.38 pueden observarse las principales componentes y las interfaces. El

detalle de las interfaces, como las APIs y los formatos de intercambio, si es posible, son

desarrolladas como un conjunto básico común. Cuando haya requerimientos particulares de

las interfaces, es necesaria la presencia de parámetros adicionales. Las APIs y los formatos de

intercambio se pueden considerar como un conjunto de constructores a través de cuales los

servicios del sistema de flujo de trabajo pueden ser accedidos. Estos constructores pueden

regular la interacción entre el software de control de flujos de trabajo y otros componentes del

sistema.

El componente central es el Servicio de Ejecución de Flujo de Trabajo. Éste es el

encargado de crear, gestionar y ejecutar cada una de las instancias del modelo del flujo de

trabajo. En este componente se encuentra el motor del SGFT que proporciona la ejecución de

cada instancia de flujo de trabajo. Este servicio de software puede consistir de uno o más

motores de flujos de trabajo. Un motor de flujo de trabajo es el responsable de parte o todo el

ambiente de control de ejecución dentro del servicio. Un motor de flujo de trabajo puede

controlar la ejecución de un conjunto de procesos, sub-procesos o instancias con un alcance

definido, determinado por los tipos de objetos y sus atributos.

Otro de los componentes es el de Herramientas de Definición del Proceso. Estas

componentes permiten modelar, describir y documentar un determinado flujo de trabajo o un

proceso de negocio. Las herramientas aquí pueden ser totalmente informales, como lenguaje

natural (en papel y lápiz), o formalizadas como interfaces gráficas con un modelo subyacente

bien definido. Permiten especificar la lógica del proceso, las actividades que lo componen, los

participantes humanos, datos utilizados, entre otros.

La interfaz 1 permite la comunicación entre este componente y el servicio de ejecución

de flujo de trabajo. Además es la encargada del intercambio de información entre el

componente que permite la definición del proceso y el propio servicio de ejecución de flujo de

trabajo. Esta interfaz hace necesaria la definición de un metamodelo básico, que identifique el

conjunto básico de entidades para la definición de un proceso, permitiendo el intercambio de

información entre ambos componentes. Es posible añadir más tipos de objetos, ya sea a través

de extensiones específicas o mediante la definición de niveles adicionales con mayor

funcionalidad.

El componente denominado Aplicaciones Cliente del Flujo de Trabajo representa las

entidades de software utilizadas por el usuario final. Es decir representan aquellas actividades

que requieren participación humana para su realización. La interfaz 2 puede ser necesaria para

definir y manejar los conceptos de listas de trabajo, en el caso de que este componente se

separe de lo que es propio de la ejecución. Esta interfaz debe ser lo suficientemente flexible

para: identificar procesos y actividades, referencias a datos y estructuras de datos,

mecanismos de comunicación alternativos, entre otros.

Page 44: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

36

El componente Aplicaciones Invocadas representa software o aplicaciones existentes

que un SGFT puede utilizar. Estas aplicaciones pueden encontrarse en cualquier plataforma o

lugar de la red. La interfaz 3 permite la comunicación entre este componente y el servicio de

ejecución de flujo de trabajo. Esta comunicación puede ser a nivel de invocación y a nivel de

transformación de datos en formatos entendibles por ambos componentes.

El componente Otros Servicios de Ejecución de Flujo de Trabajo es utilizado para la

interoperabilidad entre SGFT. La interfaz 4 es la que permite esta comunicación. Existen dos

aspectos importantes para la interoperabilidad: el alcance para el cual la interpretación común

de la definición de proceso es necesaria y puede ser lograda, y el soporte de tiempo de

ejecución para el intercambio de diversos tipos de información de control, además de

transferir los flujos de trabajo relevantes y/o aplicaciones de datos entre los diferentes

servicios.

El componente Herramientas de Administración y Monitorización permite que

distintos servicios de ejecución de flujo de trabajo compartan las mismas funciones de

administración y monitorización del sistema, como por ejemplo la gestión de usuarios, el

control de los recursos, entre otros. La interfaz 5 es capaz de manejar varias funciones

adicionales (heterogénea) a través dominios de flujos de trabajo. También es factible para la

aplicación de gestión tomar otras funciones de gestión. Por ejemplo, también se puede

gestionar las definiciones de proceso de flujos de trabajo, actuando como un repositorio y

distribución de definiciones de procesos a los distintos dominios de flujos de trabajo.

Page 45: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

37

Capítulo 3

Arquitectura Dirigidas por Modelos

El presente capítulo resume los principales conceptos relacionados a la Ingeniería Dirigida

por Modelos (MDE) y a la propuesta Arquitectura Dirigida por Modelos (MDA), visión de

MDE en la OMG. Inicialmente se realiza una reseña sobre el paradigma MDE. Luego se pone

énfasis en la propuesta MDA, creada por la OMG como implementación de MDE. Además se

provee la definición de MDA y los principios que la sustentan, así como los tipos de modelos

que la comprenden. También se introduce la transformación de modelos como proceso clave

de MDA y de este trabajo de tesis, conjuntamente con los estándares involucrados en MDA

poniendo mayor énfasis en el lenguaje de transformación de modelos QVT. En particular se

muestra y explica la construcción de una transformación en el lenguaje QVT-Relations a

través de un ejemplo.

3.1 Introducción

Ingeniería Dirigida por Modelos (Model Driven Engineering – MDE) tiene como objetivo

elevar el nivel de abstracción en la especificación de programas e incrementar la

automatización en el desarrollo de los mismos. MDE impulsa el uso de modelos como

artefactos3 principales a ser construidos y mantenidos. El término MDE fue propuesto por

Stuart Kent, quien lo define como la combinación de procesos y análisis en conjunto con la

arquitectura [56]. Cualquier especificación puede ser expresada con modelos, en consecuencia

un proceso de desarrollo de software se convierte en un proceso de refinamiento y

transformación entre modelos de manera tal que el nivel de abstracción vaya decrementando

hasta llegar al código para una plataforma específica.

Un modelo es una representación abstracta de una realidad (sistema). Un modelo está

constituido por un conjunto de elementos que proporcionan una descripción sintética y

3 Artefacto: información que es utilizada o producida por un proceso de desarrollo de software. Pueden ser

modelos, descripciones hasta un sistema.

Page 46: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

38

abstracta de un sistema. Éste permite estudiar un sistema y comprenderlo mejor. Los modelos

pueden construirse en distintos niveles de abstracción, para en un paso posterior, generar el

código correspondiente.

El incremento de la automatización en el desarrollo de programas puede ser alcanzado

utilizando transformaciones ejecutables de modelos. Los modelos de alto nivel pueden ser

refinados y transformados en modelos de más bajo nivel, permitiendo la ejecución del mismo.

Arquitectura Dirigida por Modelos (Model Driven Architecture - MDA) [6] [7] y

MDE [8] [9] proponen un proceso de desarrollo de software en el cual la clave son los

modelos y las transformaciones entre modelos. En este proceso, el software es desarrollado

construyendo uno o más modelos, y transformando estos en otros modelos. A su vez, estos

modelos pueden ser transformados hasta llegar a código ejecutable.

La transformación de modelos es el objetivo de MDE teniendo como premisa que los

modelos son entidades productivas. La iniciativa de MDE cubre varias áreas de investigación:

lenguajes de modelado, definición de lenguajes para transformación de modelos, construcción

de herramientas, etc. Actualmente algunos de estos aspectos están bien estudiados y otros

están en un proceso de definición. En este contexto, es necesario convertir MDE y sus

conceptos en una propuesta coherente, basado en estándares abiertos, con técnicas y el soporte

de herramientas maduras.

La definición de transformaciones de modelos requiere la aplicación de lenguajes

específicos. Estos lenguajes deberían tener una base formal, y al menos un metamodelo

describiendo su sintaxis abstracta [46]. La transformación de modelos se refiere al proceso de

transformación (relaciones y mapeo) de elementos de un modelo a elementos

correspondientes de otro modelo. Estas transformaciones son usualmente definidas en el nivel

de metamodelo M2 de la OMG [47]4 y aplicado al modelo de nivel M1 del mismo.

Los modelos son especificados en alguna notación o lenguaje de modelado. Como se

mencionó anteriormente, la sintaxis de un lenguaje se define mediante un metamodelo. La

semántica también puede, en algunos casos, definirse por un metamodelo, pero en la mayoría

de los casos prácticos la semántica no se define explícitamente, sino que es derivado del

comportamiento en tiempo de ejecución.

Por otra parte, la calidad en el desarrollo de software es un aspecto importante en

MDE. La calidad con MDE puede ser comprobada o asegurada con tres técnicas diferentes:

validación de modelos, verificación de modelos y pruebas basadas en modelos.

La verificación de modelos se refiere a la construcción correcta de un modelo.

Se puede definir en términos más simples diciendo que la verificación consiste 4 UML 2.1.2 Infraestructure, pag 19.

Page 47: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

39

en determinar si existen errores en el modelo.

La validación se refiere a la construcción de un modelo correcto. La validación

es el proceso de determinar si el modelo, como abstracción, es una buena

representación del sistema.

La idea de las pruebas basadas en modelos ha permanecido por décadas. Moore [44]

inició la investigación con la generación de pruebas basadas en máquinas de estados finitos en

el año 1956.

Las pruebas basadas en modelos son definidas como las pruebas de software

donde los casos de pruebas son derivados en todo o en parte de un modelo que

describe algunos, si no todos, aspectos del sistema bajo prueba [45].

Como se mencionó anteriormente, MDE busca incrementar la productividad, mejorar

la calidad, y reducir los costos del proceso de desarrollo de software. Persiguiendo este

objetivo ha crecido el interés en este campo. Prueba de ello es la aproximación a la

Arquitectura Dirigida por Modelos [6], apoyada por el OMG.

MDA es la visión de MDE en la OMG. MDA es un marco de trabajo para el desarrollo

de software definido por la OMG. La clave de MDA está en la importancia de los modelos en

el proceso de desarrollo de software. Con MDA el proceso de desarrollo de software está

dirigido por la actividad de modelar el sistema de software [7].

3.2 MDA

En el 2001 la OMG adopta el marco de trabajo para la implementación de sistemas

distribuidos MDA, el cual provee un enfoque para la utilización de modelos en el desarrollo

de software. MDA proporciona un enfoque abierto e independiente del proveedor ante el

desafío de los posibles cambios en la tecnología y/o negocio.

La Figura 3.1 muestra la arquitectura de MDA. En el centro de la figura se encuentran

los estándares, para el modelado, de la OMG: UML, MOF y CWM (Common Warehouse

MetaModel). En base a estos estándares se construyen los modelos centrales de las

aplicaciones. Estos modelos deben ser independientes de cualquier plataforma y representan

características comunes a todas las plataformas en su categoría. El anillo que continua hacia

afuera del modelo MDA muestra plataformas específicas. Estas plataformas también se

modelan utilizando perfiles UML. Como se observa en la Figura 3.1 se puede tener perfiles

para plataformas como: CORBA, XMI/XML, .NET, Java, Web Services, etc. Definida la

funcionalidad y el comportamiento de la aplicación a través de un modelo independiente de la

plataforma se debe transformar a un modelo con una plataforma específica. Luego se genera

el código de la aplicación. Mientras más preciso sea el modelo más completo es el código que

se genera. Luego pueden observarse los servicios extendidos en el anillo que le sigue. Estos

Page 48: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

40

servicios esenciales están disponibles para cualquier aplicación de Internet o Incrustada, e

incluyen: Directorios, Eventos, Persistencia, Transacciones y Seguridad. Finalmente se

muestran las áreas que abarca MDA [53].

Figura 3.1: Arquitectura Dirigida por Modelos de la OMG [49]

Basado en los estándares de la OMG, MDA separa la lógica de negocio y aplicación

de la plataforma subyacente. Los PIMs de una aplicación o el funcionamiento de sistemas de

negocios integrados construidos con UML y otros estándares para el modelado de la OMG,

pueden ser realizados a través de MDA en cualquier plataforma, abierta o propietaria,

incluyendo servicios Web, CORBA, J2EE entre otros. Estos modelos independientes de la

plataforma tienen la cualidad de que los modelos son independientes de las características de

cualquier tipo de plataforma tecnológica, además documentan la funcionalidad y

comportamiento de una aplicación separada de la tecnología específica [49].

El ciclo de vida de desarrollo de MDA es similar a los tradicionales, los artefactos son

creados durante el desarrollo del proceso y en su mayoría son modelos. MDA comienza con

la idea bien conocida y establecida de separar la especificación de la operación de un sistema

a partir de los detalles del sistema y su plataforma. Además MDA proporciona un enfoque

para:

especificar sistemas independientemente de la plataforma,

especificar plataformas,

elegir una plataforma particular para el sistema, y

transformar la especificación del sistema en una plataforma particular.

Page 49: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

41

MDA posee como base cuatro principios [52]:

1) Los modelos expresados en una notación bien definida son la piedra angular para

comprender sistemas altamente escalables.

2) La construcción de sistemas puede ser organizada en torno a un conjunto de modelos

mediante la imposición de una serie de transformaciones entre modelos, organizados

en un marco de trabajo arquitectónico en capas y transformaciones.

3) Un conjunto de metamodelos es el respaldo para describir modelos. Éste facilita la

integración y transformación entre modelos y es la base para la automatización a

través de herramientas.

4) La aceptación y adopción generalizada de este enfoque basado en modelos requiere

estándares industriales para proveer transparencia a los usuarios.

Para sostener los principios antes mencionados, la OMG ha definido un conjunto

específico de capas y transformaciones que proveen un marco conceptual y un vocabulario

para MDA. En particular, la OMG identifica tres tipos de modelos los cuales cubren todo el

ciclo de vida de un sistema de software: Modelo Independiente de la Computación

(Computation Independent Model - CIM), Modelo Independiente de la Plataforma (Platform

Independent Model - PIM) y Modelo Específico de la Plataforma (Platform Specific Model -

PSM).

Modelo Independiente de la Computación (CIM)

Un modelo independiente de la computación es una perspectiva de un sistema desde el punto

de vista de computación independiente. Un CIM no muestra detalles de la estructura de los

sistemas y a veces es llamado modelo de dominio o modelo de negocio, además un

vocabulario familiar para los practicantes es utilizado en su especificación. CIM juega un rol

importante en la reducción de la línea entre los que son expertos acerca del dominio y sus

requisitos y los que son expertos en el diseño y construcción de los artefactos.

Los requerimientos para el sistema se modelan en un CIM y este representa el nivel

más alto del modelado. Se puede ocultar mucho o toda la información sobre el uso de los

sistemas automatizados de procesamiento de datos. Típicamente, dicho modelo es

independiente de cómo se implemente el sistema.

CIM es un modelo de un sistema que es visualizado a través del entorno en el cual va a

operar, esto ayuda a comprender exactamente que se espera que haga el sistema. Esto es útil,

no sólo porque ayuda al entendimiento del problema, sino que también se utiliza como fuente

de un vocabulario compartido para usar en otros modelos. Una especificación MDA de un

sistema de requerimientos CIM debe ser trazable para las construcciones de PIM y PSM que

los implementan [6].

Page 50: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

42

Un objetivo fundamental de CIM es que cualquiera que sea capaz de comprender las

necesidades y los procesos que actuarán pueda comprender un CIM, ya que este modelo se

desliga de todo tipo de conocimiento de sistemas.

Modelo Independiente de la Plataforma (PIM)

Un modelo independiente de la plataforma es una vista de un sistema el cual representa su

lógica y sus interacciones con el mundo exterior, ocultando los detalles necesarios para una

plataforma en particular, además no muestra los detalles del uso de su plataforma [50]. Una

vista independiente de la plataforma muestra parte de la especificación completa que no

cambia de una plataforma a otra.

Un PIM representa un modelo sin hacer referencia a ninguna plataforma en la cual

será desarrollada la aplicación, además ignora los sistemas operativos, los lenguajes de

programación, el hardware, etc. Es decir que este modelo debe tener tal nivel de abstracción

que no cambie, sea cual fuere la plataforma elegida para su implementación.

Una técnica muy común para lograr la independencia de plataformas es apuntar a un

modelo de sistema de una máquina virtual de tecnología neutra. Una máquina virtual se define

como un conjunto de partes y servicios (comunicaciones, programación, nombres, etc.) los

cuales son definidos independientemente de cualquier plataforma específica pero que son

realizados pensando en plataformas específicas. Este tipo de modelo es independiente de la

plataforma ya que ellos no se ven afectados por la plataforma subyacente [6].

Modelo Específico de la Plataforma (PSM)

Un modelo específico de la plataforma es una perspectiva de un sistema desde el punto de

vista específico de la plataforma, es decir un PSM es un modelo del sistema con detalles

específicos a la plataforma en la cual será implementado. Como consecuencia, los PSMs

tienen que tener en cuenta explícitamente los sistemas operativos, los lenguajes de

programación y las plataformas entre otros. Un PSM producido por la transformación desde

un PIM, representa el mismo modelo pero desde otro nivel de abstracción.

PSM puede proveer más o menos detalles, dependiendo de su propósito. PSM será una

implementación, si éste proporciona toda la información necesaria para construir un sistema y

ponerlo en funcionamiento, o puede actuar como un PIM que es utilizado para promover el

refinamiento para un PSM que puede ser directamente implementado [6].

Se puede decir entonces que un PSM es un PIM el cual tendrá detalles específicos para

ser implementado en una plataforma determinada. PSM es un modelo de bajo nivel, muy

cercano al código. Se pueden generar varios PSMs para un mismo PIM, ya que cada uno

puede mostrar diferentes vistas [51] (ver Figura 3.2).

Page 51: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

43

Por ejemplo, en una base de datos relacional un PSM incluye términos como: „tabla‟,

„columna‟, „clave‟, etc.

Figura 3.2: Transformación de modelos

3.3 Beneficios de MDA

La principal ventaja de MDA reside en una clara y estricta separación de responsabilidades.

Por un lado, se modelan los PIMs los cuales representan los modelos del sistema a construir, y

por el otro, los PSMs con las cuestiones tecnológicas. Esto permitirá que ambos modelos

evolucionen por separado. De esta manera, si se quiere, por ejemplo, modificar un aspecto

técnico, bastaría con modificar el PSM sin que éste tuviera impacto sobre el PIM.

Los objetivos principales de MDA son [7]:

Productividad:

En MDA el foco del desarrollo está puesto sobre los PIMs. Los PSMs se generan

automáticamente a partir del PIM. Lógicamente, alguien tiene que definir las

transformaciones exactas, lo cual es una tarea especializada y difícil. Pero una vez

implementada la transformación, puede usarse en muchos desarrollos. La mayoría de

los desarrolladores están focalizados en el desarrollo de los PIMs y ellos pueden

trabajar independientemente de los detalles y especificaciones de las plataformas. Los

detalles técnicos deberían ser automáticamente agregados en la transformación entre

PIM y PSM. Lo mismo sucede con la generación de código a partir de los PSMs.

Este enfoque centrado en el PIM aísla los problemas específicos de cada plataforma y

se ajusta mucho mejor a las necesidades de los usuarios finales, puesto que se puede

añadir funcionalidad con menos esfuerzo. De esta manera el trabajo duro recae sobre

las herramientas de transformación y no sobre el desarrollador.

Portabilidad:

En MDA, la portabilidad se logra también enfocando el desarrollo sobre el PIM. Al ser

un modelo independiente de cualquier tecnología, todo lo definido en él es totalmente

CIM PIM

PSM 1

PSM 2

PSM n

Page 52: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

44

portable. El mismo PIM puede ser automáticamente transformado en múltiples PSMs

para diferentes plataformas. La portabilidad puede lograrse dependiendo de las

herramientas de transformación que estén disponibles. Para las plataformas populares

existe un gran número de herramientas disponibles, no así para las plataformas menos

conocidas. De todas maneras, otra vez el peso recae sobre las herramientas de

transformación que realizan automáticamente el paso del PIM al PSM de la plataforma

deseada.

Interoperabilidad:

Los PSMs generados a partir de un PIM normalmente tienen relaciones, que es lo que

MDA llama puentes (bridge). Normalmente los distintos PSMs no pueden

comunicarse con ellos directamente, ya que pueden pertenecer a distintas tecnologías.

Este problema lo soluciona MDA generando no sólo los PSMs sino también los

puentes entre ellos.

Como es razonable, estos puentes serán construidos por las herramientas de

transformación, que como se ha visto son uno de los pilares fundamentales en MDA.

Si la transformación a partir de un PIM genera más de un PSM con distintas

plataformas, es necesario un puente que vincule estos PSM, ya que cada elemento de

un PSM tiene una correspondencia con otro elemento del otro PSM generado.

Mantenimiento y Documentación:

Como ya se ha dicho, los desarrolladores se focalizan en la construcción del PIM y a

partir de éste se generan los PSMs, y luego el código. Básicamente, el PIM desempeña

el papel de la documentación de alto nivel que se necesita para cualquier sistema

software. El modelo es una representación exacta del código. La gran diferencia es que

el PIM no se abandona tras la codificación ya que los cambios realizados en el sistema

se deben reflejar en todos los niveles cambiando el PIM, regenerando los PSMs y el

código. Aun así, se sigue necesitando documentación adicional que no puede

expresarse con el PIM, por ejemplo, argumentar las elecciones de realizadas en el

desarrollo del PIM.

3.4 Transformación de Modelos y Metamodelos

El concepto de transformación de modelos es clave en la Ingeniería Dirigida por Modelos.

Como se mencionó en la sección de introducción, las transformaciones son usualmente

definidas en el nivel de metamodelo M2 de la OMG [47] y son aplicadas al modelo de nivel

M1 del mismo. Una transformación de modelos toma como entrada un modelo acorde a un

determinado metamodelo y produce como salida otro modelo acorde también a un

Page 53: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

45

determinado metamodelo. Más precisamente, y de acuerdo con la definición que da Kleppe et

al [7]: “Una transformación es la generación automática de un modelo destino a partir de un

modelo origen de acuerdo a una definición de transformación”.

Un metamodelo define el lenguaje con el cual se construyen modelos. Un metamodelo

describe el conjunto de modelos admisibles y define formalmente los elementos de un

lenguaje de modelado junto con sus relaciones y restricciones.

Existen diferentes lenguajes para definir metamodelos. UML, por ejemplo, es un

metamodelo que especifica cómo crear modelos UML. Es decir, un modelo UML es una

instancia del metamodelo UML.

La transformación de modelos es un proceso el cual convierte un modelo en otro

representando el mismo sistema y ocurre en tiempo de ejecución. Una transformación puede

realizarse de manera horizontal o vertical. En una transformación horizontal el modelo fuente

se encuentra en el mismo nivel de abstracción que el modelo destino, por ejemplo, cuando se

realiza refactorización. En una transformación vertical los modelos se encuentran expresados

en distintos niveles de abstracción, por ejemplo es el caso en la transformación de un PIM a

PSM. Estos PSMs se pueden generar mediante una o más transformaciones. Un PSM es

producido a partir de un PIM más información adicional.

Basándose en el lenguaje en el cual se encuentran expresados los modelos de origen y

destino, se puede hablar también de transformaciones endógenas o exógenas. Las

transformaciones endógenas son aquellas transformaciones que comparten el mismo

metamodelo; si los metamodelos son diferentes las transformaciones se llaman exógenas. Si

en una transformación se utilizan varios modelos origen y/o varios modelos destino, entonces

pueden estar involucrados varios metamodelos diferentes [58].

Existen muchos caminos en los cuales las transformaciones pueden ser realizadas:

Construyendo manualmente el PSM a partir de un PIM.

De manera semiautomática, generando la estructura de un PSM y

completándolo a mano.

De manera automática, generando un PSM completo a partir del PIM.

Para las transformaciones automáticas se utilizan herramientas especializadas. Estas

herramientas tienen implementados distintos algoritmos de transformación para pasar de un

tipo de modelo a otro, pilar fundamental en MDA.

También es posible refinar un PSM transformándolo sucesivamente en PSMs de más

bajo nivel, hasta llegar al punto en que pueda ser transformado a código de manera directa.

Con la ayuda de las herramientas de transformación se puede obtener gran parte del código

Page 54: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

46

del sistema para la plataforma elegida. El desarrollador sólo tendrá que añadir la

funcionalidad que no puede representarse con un PIM o PSM.

Un modelo se prepara utilizando tipos independientes de la plataforma. Los tipos

pueden ser parte de un marco de trabajo de software. Los elementos en el PIM son subtipos de

los tipos independientes de la plataforma. Para realizar la transformación una plataforma es

elegida y el mapeo entre los tipos independientes y los dependientes a la plataforma es

construido. Este mapeo incluye un conjunto de marcas. Las marcas se utilizan para marcar

elementos del modelo y para dirigir o controlar la transformación a una plataforma

determinada. Estas marcas son específicas de la plataforma por lo que no forman parte del

PIM. Los elementos en PSM son subtipos de los tipos específicos de plataforma.

Cuando se habla de transformación de metamodelos, un modelo se prepara utilizando

un lenguaje independiente de la plataforma especificada por un metamodelo. Una

especificación de una transformación para esta plataforma es preparada. Esta especificación

de transformación es en términos de una asignación entre los metamodelos. La Figura 3.3

muestra las relaciones entre los metamodelos, los modelos y las transformaciones.

Figura 3.3: Transformación de modelos y metamodelos

Como se mencionó anteriormente, a través de los motores de transformación se facilita

la evolución de modelos, transformando unos modelos a otros, según la reglas de

transformación entre metamodelos.

3.5 Arquitectura en capas

MDA no implica el uso de UML para la construcción de modelos, en su lugar MDA utiliza

MOF [54], ya que las definiciones de metamodelos son instancias del meta-metamodelo MOF

[55].

MOF un lenguaje de metamodelado, es decir MOF se utiliza crear metamodelos, y en

consecuencia es un elemento básico en MDA. Un lenguaje de modelado se define mediante

un metamodelo o descripción de los elementos del lenguaje y de las posibles relaciones entre

ellos.

Page 55: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

47

Cada metamodelo define un lenguaje de modelado para un dominio específico, el cual

presenta una solución al modelado de distintos tipos de sistemas software. Como ejemplo se

puede observar el metamodelo UML para modelar la arquitectura de sistemas orientados a

objetos, o el metamodelo SPEM para modelar procesos software, entre otros.

Para comprender porque los metamodelos son instancias de MOF en la Figura 3.4 se

muestran los niveles de modelado de la arquitectura conceptual de MOF.

Figura 3.4: Ejemplo de las cuatro capas del metamodelo [50]5

El nivel del meta-metamodelado es la base en la jerarquía de metamodelado. La

responsabilidad principal de esta capa consiste en definir el lenguaje para la especificación de

un metamodelo. La capa a menudo se denomina como M3, y MOF es un ejemplo de un meta-

metamodelo. Un meta-metamodelo es típicamente más compacto que el metamodelo que

describe y, a menudo define varios metamodelos. En general, es conveniente que tanto el

meta-metamodelo y el metamodelo compartan constructores comunes. Sin embargo, cada

capa puede ser vista independientemente de otras capas. MOF es considerado como un

ejemplo de lenguajes dentro de este nivel [47]. Dicho lenguaje se define por la OMG con el

fin de definir constructores y mecanismos para definir metamodelos. Algunos de estos

constructores son: clases, atributos, asociaciones entre otros [50].

5 Model Driven Architecture TM – Applying MDA TM to Esterprise computing pag. 105

Page 56: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

48

Un metamodelo es una instancia de un meta-metamodelo. La responsabilidad

principal de la capa metamodelo es la definición de un lenguaje para especificar modelos. La

capa se denomina a menudo M2 [47]. Algunos ejemplos de lenguajes que se encuentra en este

nivel son UML, Metamodelo Común de Almacenes de Datos (CWM) y Modelo de

Componentes CORBA, los cuales están expresados en MOF. De esta manera, los

constructores M2 son instancias de los constructores M3. En otras palabras, los constructores

definidos por los metamodelos son instancias de los constructores de MOF [50].

Un modelo es una instancia de un metamodelo. La responsabilidad principal de la capa

de modelo es definir los lenguajes que describen los dominios semánticos, es decir, permitir a

los usuarios modelar una amplia variedad de dominios. Los elementos que son modelados

residen fuera de la jerarquía del metamodelo. Esta capa se denomina a menudo como M1. Los

conceptos definidos en M1 especifican la clasificación para los elementos de M0.

Los elementos de la capa denominada M0 son instancias de un modelo particular, de

un sistema real, es decir son instancias de los elementos de M1. Se describe información del

dominio, es decir los elementos concretos. Un ejemplo de una instancia de la clase Cliente

sería “Juan Lucero”.

3.6 Estándares involucrados en MDA

En MDA, los PIM son inicialmente expresados en un lenguaje de modelado independiente de

la plataforma, por ejemplo con UML. El PIM es convertido a un PSM seleccionado. Luego a

partir del PSM, se genera el código del sistema en el lenguaje de programación deseado, por

ejemplo Java, C#, etc.

Para poder llevar a la práctica los conceptos subyacentes de MDA, la OMG define un

gran número de estándares [6] [57], algunos de los cuales ya han sido descriptos en las

secciones precedentes:

UML (Unified Modelling Language), es un Lenguaje de Modelado estándar

para visualizar, especificar, construir y documentar sistemas de software.

Adoptado por la OMG y publicado como estándar en el año 1997. Proporciona

un vocabulario para describir gran cantidad de sistemas. La mayoría de los

dominios pueden modelarse con UML.

CWM (Common Warehouse Metamodel), define un formato común de

intercambio para metadatos en data warehouse. Provee un lenguaje común y

definiciones de metamodelos para datos en data warehouse.

OCL (Object Constraint Language), lenguaje formal utilizado para describir

expresiones en modelos UML. Permite expresar consultas y restricciones sobre

modelos. Las expresiones OCL se evalúan y no tienen efectos secundarios.

Page 57: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

49

MOF (Meta Object Facility), es el metamodelo facilitado por MDA como

vocabulario básico o meta-metamodelo. Proporciona un repositorio de modelos

que pueden ser utilizados para especificar y manipular modelos, manteniendo

la consistencia entre lo modelos manipulados en todas las fases de la

utilización de MDA.

QVT (Query/View/Transformation), es un estándar establecido para crear

consultas, vistas y transformaciones de modelos. Su especificación depende de

otros dos estándares de la OMG como son MOF y OCL. La utilización de la

especificación de QVT para especificar transformaciones, aporta reutilización

de tecnologías que siguen estándares.

XMI (XML Metadata Interchange), es el estándar para el intercambio,

manipulación e integración de datos y objetos XML. Su principal objetivo es

permitir un intercambio de meta-información entre herramientas de modelado

y repositorios de meta-información basados en MOF en entornos heterogéneos.

XMI provee un mapeo entre MOF y XML.

3.7 QVT

3.7.1 Introducción

Como se mencionó en las secciones anteriores un aspecto importante en el desarrollo dirigido

por modelos son las transformaciones de modelos, un proceso en el cual se convierte un

modelo en otro representando el mismo sistema. Una transformación de modelos es una

transformación de uno o más modelos fuentes a uno o más modelos destinos, cada uno

basados en sus metamodelos. Se puede decir entonces que instancias de un metamodelo

pueden ser transformadas en instancias de otro metamodelo. Una definición de

transformación es un conjunto de reglas de mapeo que en forma conjunta definen cómo un

modelo origen puede ser transformado en un modelo destino. Cada regla de mapeo describe

que uno o más elementos del modelo fuente deben ser transformados en elementos del

modelo destino. Cuando todas las reglas de mapeo han sido aplicadas la transformación se

considera completa.

El mapeo se utiliza para realizar la transformación de las instancias de los modelos a

ser mapeados. Éste describe las reglas a ser utilizadas para la transformación.

Anteriormente se señaló como la transformación de modelos es un proceso clave en

MDA. El lenguaje estándar que propone la OMG para expresar consultas y definir

transformaciones es QVT. Con QVT es posible definir transformaciones genéricas entre

metamodelos, de esta manera cualquier instancia de un metamodelo puede ser transformado

en una instancia de otro metamodelo. QVT se basa principalmente en la definición de un

lenguaje para consultas (Queries) sobre modelos MOF, la búsqueda de un estándar para

Page 58: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

50

generar vistas (Views) que muestran aspectos específicos de los sistemas modelados, y la

definición de un lenguaje para la descripción de transformaciones (Transformations) de

modelos MOF. Con respecto a las consultas en los modelos: el lenguaje facilita consultas ad-

hoc para selección y filtrado de elementos de modelos. Para las vistas en metamodelos: el

lenguaje permite la creación de vistas de metamodelos sobre los que se define la

transformación. Y para las transformaciones de modelos: el lenguaje permite la definición de

transformaciones, a través de relaciones entre un metamodelo fuente y un metamodelo

destino.

QVT permite definir transformaciones genéricas entre metamodelos de manera precisa

y estos metamodelos se encuentran definidos en MOF. Una característica importante es que

las transformaciones pueden ser bidireccionales.

La especificación QVT se define a través de dos dimensiones ortogonales: la

dimensión del lenguaje y la dimensión de interoperabilidad, con cada dimensión

especificando una serie de niveles. La intersección de niveles de las dos dimensiones define

un punto de compatibilidad QVT (QVT-compliance). La dimensión del lenguaje define los

lenguajes de transformación presentes en la especificación QVT: Relations, Core y

Operational Mappings. La principal diferencia entre ellos radica en su naturaleza declarativa o

imperativa. En la dimensión de interoperabilidad se hallan las características que hacen

posible que una herramienta interactúe con otra que cumpla con el estándar. Estas

características son: sintaxis ejecutable, XMI ejecutable, sintaxis exportable y XMI exportable:

La sintaxis ejecutable se refiere a una implementación que permita fácilmente

la importación o lectura, y posterior ejecución de la descripción de la sintaxis

concreta de una transformación definida en el lenguaje dado por la dimensión

del lenguaje.

XMI ejecutable se refiere a que una implementación debe proveer facilidad

para importar o leer, y posteriormente ejecutar una serialización XMI de una

transformación que concuerda con el metamodelo MOF del lenguaje dado por

la dimensión del lenguaje.

La sintaxis exportable establece que una implementación debe proveer

facilidad para exportar una transformación modelo a modelo en la sintaxis

concreta del lenguaje dado por la dimensión del lenguaje.

XMI exportable se refiere a que una implementación debe permitir facilidad

para exportar transformaciones modelo a modelo como serializaciones XMI

que concuerda con el metamodelo MOF del lenguaje dado por la dimensión del

lenguaje [48].

Page 59: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

51

3.7.2 Visión General

La especificación QVT tiene una naturaleza híbrida porque es declarativa e imperativa, con la

parte declarativa dividida en una arquitectura de dos capas que forma el marco de trabajo para

la ejecución semántica de la parte imperativa. Las dos capas de la arquitectura de la parte

declarativa de QVT son:

Un metamodelo Relations conocido, y un lenguaje declarativo que soporta pattern

matching (coincidencia de patrones) de objetos complejos y creación de plantillas (template)

de objetos. La trazabilidad entre los elementos del modelo involucrados en la transformación

se crea implícitamente.

Un metamodelo Core, y un lenguaje declarativo definido usando extensiones mínimas

de EMOF (Essential MOF) y OCL. Todas las clases de trazabilidad están explícitamente

definidas como modelos de MOF, y la creación y eliminación de una instancia de clase de

trazabilidad se define de la misma manera que la creación y eliminación de cualquier otro

objeto. La Figura 3.5 muestra los metamodelos antes mencionados y sus relaciones.

Figura 3.5: Relaciones entre los metamodelos QVT

El lenguaje Relations provee una especificación declarativa de las relaciones entre

modelos MOF. Además de soportar pattern matching de objetos complejos e implícitamente

crear clases de trazabilidad y sus instancias guardando todo lo que sucede en una ejecución de

una transformación, tiene una sintaxis gráfica concreta. La semántica de Relations se define

con una combinación de lenguaje natural y lógica de primer orden.

Core es un lenguaje/modelo que sólo admite pattern matching sobre un conjunto de

variables, evaluando condiciones sobre variables de un conjunto de modelos. Core trata a

todos los elementos del modelo origen, del destino y de trazabilidad de forma simétrica y es

igualmente potente que el lenguaje Relations. Su semántica puede ser definida más

simplemente, aunque las descripciones de la transformación descripta utilizando Core son

más detalladas. Igualmente, los modelos de trazabilidad deben ser explícitamente definidos y

no son deducibles desde la descripción de la transformación, como ocurre en el lenguaje

Relations.

Page 60: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

52

La flecha de la Figura 3.5 entre Relations y Core muestra que existe la posibilidad de

transformar una especificación de transformación en el lenguaje Relations al lenguaje Core.

Además de los lenguajes declarativos Relations y Core que tiene la misma semántica

en dos niveles distintos de abstracción, existen dos mecanismos para invocar

implementaciones imperativas de transformaciones desde Relations o Core: un lenguaje

estándar Operational Mappings, como también una implementación (no estándar) llamada

Black-box MOF Operation.

El lenguaje Operational Mappings está especificado como un estándar para proveer

implementaciones imperativas. La sintaxis del lenguaje QVT Operational Mappings

proporciona construcciones que suelen encontrarse en lenguajes imperativos (bucles,

condiciones, etc.). Además proporciona extensiones OCL con efectos colaterales que

permiten un estilo más procedural y una sintaxis concreta que hace a la programación más

familiar.

Operational Mappings puede ser utilizado para implementar una o más Relations

desde una especificación Relations cuando sea difícil proporcionar una especificación

declarativa. Estas operaciones pueden invocar otras operaciones de mappings siempre con el

objetivo de crear trazabilidad entre los elementos de los modelos. Una transformación escrita

utilizando operaciones de mappings es llamada transformación operacional.

Las operaciones MOF pueden derivarse desde Relations haciendo posible integrarlas

con cualquier implementación de una operación MOF con la misma firma. Esto es

beneficioso por varias razones:

Permite codificar algoritmos complejos en cualquier lenguaje de programación

vinculado a MOF.

Permite el uso de librerías específicas de dominios para calcular propiedades

del modelo. Por ejemplo, en matemáticas, en ingeniería y en otros dominios los

cuales almacenan algoritmos específicos, que serían muy complejos de

expresar utilizando OCL.

Permite el ocultamiento de la implementación de algunas partes de la

transformación.

Sin embargo, esta integración puede ser peligrosa porque la implementación asociada

a la integración puede romper el encapsulamiento ya que tiene acceso a las referencias de

objetos en los modelos.

Las implementaciones Black-box no tienen una relación implícita a Relations, y cada

Black-box debe invocar explícitamente a algún servicio de transformación que corresponda a

ese Relation, si fuera requerido [48]. Además Black-box se utiliza también para invocar

Page 61: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

53

servicios de transformación expresados en otros lenguajes como por ejemplo XSLT, XQuery,

etc. con el fin de integrar bibliotecas existentes no compatibles con QVT.

3.7.3 Lenguaje Relations

Como se mencionó anteriormente, el lenguaje Relations permite construir una especificación

declarativa de las relaciones entre metamodelos MOF. Estas relaciones llevan a cabo la

transformación y soportan pattern matching de objetos complejos y templates de creación de

objetos.

Una relación establece un vínculo entre elementos de los modelos candidatos y

consiste de dos o más dominios. Un modelo candidato es cualquier modelo que forme parte

de un tipo de modelo o metamodelo. Los modelos candidatos tienen un nombre y los tipos de

los elementos que pueden contener. Estos elementos estarán restringidos por el paquete

(metamodelo) al que se hace referencia en la declaración del modelo candidato. La Figura 3.6

muestra un ejemplo [48] de la declaración de una transformación:

Figura 3.6: Declaración de una transformación en QVT-Relations

Como muestra el ejemplo, una transformación lleva el nombre de uml2Rdbms, y toma

dos parámetros los cuales son los modelos candidatos, uml y rdbms. El modelo uml es una

instancia del metamodelo SimpleUML y el modelo rdbms será una instancia del metamodelo

SimpleRDBMS. En el contexto de transformación el tipo de modelo está definido por su

metamodelo. Los metamodelos del ejemplo pueden observarse en la Figura 3.7 y 3.8

respectivamente.

transformation uml2Rdbms (uml : SimpleUML, rdbms : SimpleRDBMS)

Page 62: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

54

Figura 3.7: Metamodelo SimpleUML

Figura 3.8: Metamodelo SimpleRDBMS

Page 63: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

55

Una transformación (transformation) puede invocarse tanto para comprobar la

consistencia de los modelos como para transformar un modelo en otro. El procedimiento de

transformación se basa en comprobar que todas las relaciones definidas en esa transformación

se satisfagan y aquellas relaciones que no se cumplan, se intenta cumplirlas creando,

eliminando o modificando el modelo destino forzando el cumplimiento de estas relaciones.

Las relaciones (relations) en una transformación definen las restricciones que deben satisfacer

los elementos de los modelos candidatos.

Una transformación invocada se ejecutará en una dirección particular seleccionando

uno de los modelos candidatos como modelo destino u objetivo. El modelo destino puede

estar vacío o contener elementos para ser relacionados por la transformación. Como la

ejecución de las transformaciones puede ser bidireccional, la dirección se establece por el

conjunto de dominios que se asocian con el tipo de modelo de destino. Cada dominio define

un modelo candidato. Un dominio (domain) es una variable con tipo que puede hacer

matching en una instancia de un metamodelo dado. Un dominio tiene un patrón que puede ser

visto como un grafo de nodos de objetos, cuyas propiedades y links de asociación se originan

de una instancia del tipo del dominio. Un patrón contiene variables, asignaciones y predicados

que los elementos del modelo vinculados a esas variables deben satisfacer para lograr una

correspondencia válida de ese patrón. Un predicado se puede evaluar como falso, verdadero o

indefinido. Un patrón de dominio (domain pattern) puede considerarse como una plantilla

para objetos, y sus propiedades han de ser establecidas, modificadas o creadas en un modelo

candidato para satisfacer la relación.

La Figura 3.9 muestra una relación en el lenguaje QVT-Relations. En él se declaran

dos dominios que corresponden a elementos de los modelos uml y rdbms. Cada dominio

especifica un patrón simple, un paquete con un nombre y un esquema con un nombre. Las

propiedades name se corresponden con la misma variable pn, lo que implica que deberían

tener el mismo valor.

Figura 3.9 Declaración de una relación y dominios checkonly y enforce en QVT-Relations

Un dominio puede estar marcado como checkonly o enforce. Si un dominio se define

como checkonly, cuando se ejecute la transformación en esa dirección sólo se comprobará si

existe una correspondencia válida en el modelo relevante que satisfaga la relación; si el

dominio está marcado como enforce cuando una transformación se ejecuta en esa dirección, si

la comprobación falla, se modifica el modelo destino, creando, borrando o modificando sus

elementos para lograr que satisfaga la relación. En el ejemplo, el dominio para el modelo uml

está marcado como checkonly y el dominio para el modelo rdbms está marcado como enforce.

relation PackageToSchema {

checkonly domain uml p: Package {name=pn}

enforce domain rdbms s: Schema {name=pn}

}

Page 64: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

56

Si se está ejecutando en la dirección a uml y existe un esquema en rdbms y en uml no existe

un paquete con el mismo nombre, se detectaría una inconsistencia pero no se crearía el

paquete ya que el modelo uml es checkonly y no enforce. No obstante, si se está ejecutando en

dirección a rdbms, entonces para cada paquete en el modelo de uml, la relación primero

comprobará si existe un esquema con el mismo nombre en el modelo rdbms, si no es así, se

creará un nuevo esquema en ese modelo con el mismo nombre del paquete en uml. La

aplicación de las reglas sólo depende del dominio destino.

Además una relación especifica la relación entre los elementos de modelos candidatos,

la cual consiste en dos o más dominios, pudiendo estar limitada por dos conjuntos de

predicados llamados: cláusulas when y clausulas where. La Figura 3.10 muestra su uso:

Figura 3.10: Declaración de cláusulas when, where y Pattern matching en QVT-Relations

La cláusula when establece las condiciones que se necesitan para satisfacer la relación,

es decir, la relación ClassToTable se cumplirá sólo cuando se satisfaga la relación

PackageToSchema, o en otras palabras, la relación se cumplirá cuando el paquete contiene la

clase y el esquema contiene la tabla. La cláusula where define la condición que deben cumplir

todos los elementos que intervienen en la relación, y tiene el poder de restringir cualquiera de

las variables en la relación y sus dominios. Por lo tanto, siempre que se cumpla la relación

ClassToTable, la relación AttributeToColumn también se cumplirá. En otras palabras se puede

relation ClassToTable

{

domain uml c:Class {

namespace = p:Package { },

kind = ’Persistent’,

name = cn

}

domain rdbms t:Table {

schema = s:Schema { },

name = cn,

column = cl:Column {

name = cn+’_tid’,

type=’NUMBER’ },

primaryKey = k:PrimaryKey {

name = cn+’_pk’,

column = cl }

} when {

PackageToSchema(p,s);

} where {

AttributeToColumn(c,t);

}

}

Page 65: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

57

decir que la cláusula where establece que tras la aplicación de la relación ClassToTable se

procederá a la ejecución de la relación AttributeToColumn.

Las cláusulas when y where pueden contener cualquier expresión OCL además de las

expresiones de invocación de la relación. La invocación de relaciones permite componer

relaciones complejas a partir de relaciones más simples.

Una transformación puede contener dos tipos de relaciones: relaciones top-level y

relaciones no-top-level (ver Figura 3.11). La ejecución de una transformación requiere que

todas sus relaciones top-level se cumplan, mientras que las relaciones no-top-level se deben

cumplir sólo cuando son invocadas directa o indirectamente a través de la cláusula where de

otra relación.

Figura 3.11: Declaración de relaciones top-level y no-top-level en QVT-Relations

La distinción sintáctica entre una relación top-level y una no-top-level es la palabra

clave top. En la figura anterior, las relaciones PackageToSchema como ClassToTable son

relaciones top-level mientras que AttributeToColumn es una relación no-top-level.

Como se dijo anteriormente, las relaciones soportan pattern matching de objetos

complejos. Los patrones asociados a los dominios reciben el nombre de object template

expressions. Para mostrar cómo trabajan los patrones se mostrará nuevamente el ejemplo

antes visto de ClassToTable presentada en la Figura 3.10.

La relación ClassToTable define varias expresiones de tipo object template expression

que se utilizarán para hacer pattern matching en los modelos candidatos. En la Figura 3.10 se

puede observar el object template expression asociado al dominio de uml.

Un object template expression une elementos de un modelo candidato con variables

declaradas en el dominio. Esta expresión debe efectuarse en un contexto donde algunas de las

variables del domino estén vinculadas con elementos de un modelo. En este ejemplo el object

template expression sólo encuentra enlaces para tres variables del dominio. Estas variables

son: c, p, cn. El pattern matching ligará todas las variables de la expresión comenzando desde

la variable raíz del domino c de tipo Class. La variable p estará ligada como resultado de la

evaluación de la expresión PackageToSchema(p,s) en la cláusula when. El proceso de

matching consiste en filtrar todos los objetos de tipo Class en el modelo uml, eliminando

Transformation uml2Rdbms (uml : SimpleUML, rdbms : SimpleRDBMS) {

top relation PackageToSchema { . . . }

top relation ClassToTable { . . . }

relation AttributeToColumn { . . . }

}

Page 66: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

58

todos los objetos que no tenga los mismos valores que el object template expression. En el

ejemplo anterior, cualquier Class con propiedad kind distinta a „Persistent’ será eliminada.

Al comparar propiedades con variables como name=cn se pueden observar dos casos:

si la variable cn tiene un valor asignado, entonces cualquier Class que no tenga

el mismo valor para su propiedad name será eliminada,

si la variable cn es libre, como sucede en el ejemplo, se le asignará el valor de

la propiedad name de todas las clases.

Luego, el proceso de matching avanza hacia las propiedades cuyos valores son

comparados con object template expressions anidados. Esto puede observarse con la

propiedad namespace = p: Package que hará matching con aquellas clases cuya propiedad

namespace tenga una referencia no nula a un Package. Al mismo tiempo, la variable p

apuntará al Package. Sin embargo, en el ejemplo la variable p toma un valor en la cláusula

when por lo que sólo hará pattern matching con aquellas clases cuyas propiedades namespace

tengan una referencia al mismo paquete al que se refiere p.

En una invocación a una relación, puede haber varios matchings válidos para un

template expression, la manera de procesar esta multiplicidad depende de la dirección en la

que se ejecute la relación. Por ejemplo, si se ejecuta la relación ClassToTable y el modelo

rdbms está marcado como destino, entonces por cada matching válido del dominio uml, tendrá

que existir al menos un matching válido del dominio rdbms que satisfaga la cláusula where. Si

para un matching válido del dominio uml, no existe un matching válido del dominio rdbms,

entonces como el dominio rdbms está marcado como enforce, se crean objetos y las

propiedades se definen en el template expression asociado con el dominio rdbms. De la

misma manera, para cada matching válido del dominio rdbms, tendrá que existir al menos un

matching válido del dominio uml que satisfaga la cláusula where, esto es porque el dominio

uml está marcado como checkonly; en otro caso los objetos se eliminarán del modelo rdbms

por lo que no seguirá siendo un matching válido.

Como se mencionó anteriormente, un object template expression también se puede

utilizar como plantilla para crear un objeto en un modelo destino. Se utiliza un object template

expression del dominio destino como plantilla para crear objetos en el modelo destino, cuando

para un matching válido de un patrón del dominio origen, no existe un matching en el patrón

del dominio destino. Por ejemplo, cuando se ejecuta ClassToTable con rdbms como modelo

destino, el object template expression se utiliza para crear objetos en el modelo rdbms (ver

Figura 3.12).

Page 67: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

59

t: Table {

schema = s: Schema { },

name = cn,

column = cl: Column {

name=cn+’_tid’,

type=’NUMBER’ },

primaryKey = k: PrimaryKey {

name=cn+’_pk’,

column=cl }

}

Figura 3.12: Creación de objetos usando patrones en QVT-Relations

La plantilla asociada con Table especifica que un objeto de este tipo debe ser creado

con las propiedades schema, name, column y primaryKey inicializadas a los valores del object

template expression. Similarmente, las plantillas asociadas con Column y PrimaryKey

especifican como deben crearse sus respectivos objetos. Cuando se crean objetos, se debe

tener cuidado de que no se creen objetos duplicados cuando los objetos requeridos ya existen.

Sin embargo, en muchas ocasiones, se requiere actualizar objetos existentes, lo que deriva en

un problema sobre cuándo actualizar objetos existentes o permitir la creación de un objeto.

Como se mencionó anteriormente, QVT es un lenguaje que se utiliza para transformar

un modelo en otro modelo, y estos modelos están descriptos en un lenguaje más abstracto

llamado metamodelo. Las transformaciones en QVT se realizan a través de reglas escritas a

nivel de metamodelo ya que éste permite describir transformaciones genéricas entre

metamodelos. A través de estas reglas cualquier instancia de un metamodelo puede ser

transformado en una instancia de otro metamodelo. Para poder comprender las reglas de

transformación, el siguiente capítulo describe las componentes más importantes de los

metamodelos requeridas en este trabajo de tesis.

Page 68: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

60

Capítulo 4

Metamodelos

En el contexto de transformación, los tipos de modelos son definidos por sus metamodelos y

por un conjunto opcional de expresiones de restricción. Los metamodelos, que a su vez son

instancias de meta-metamodelos, tienen como función la definición de un lenguaje para la

especificación de modelos. Es imprescindible tener un lenguaje con una sintaxis y semántica

precisa para la descripción de modelos. El presente capítulo explica los principales conceptos

de los metamodelos BPMN2 y ESTECO, dando particular énfasis en las tareas y en los datos

de entrada y salida a nivel proceso y a nivel actividad.

4.1 Introducción

Los metamodelos BPMN2 y ESTECO están expresados en MOF (Meta Object Facility) [54].

MOF es un lenguaje muy abstracto y pequeño que permite describir metamodelos.

Antes de explicar los metamodelos utilizados en esta tesis, es necesario distinguir

entre metamodelos y modelos. Se debe recordar que un modelo es una instancia de un

metamodelo y puede a su vez ser utilizado como un metamodelo de otro modelo y así

sucesivamente. Un modelo contiene elementos y estos elementos son instancias de los

elementos del metamodelo [14].

Los metamodelos son los encargados de definir la semántica que especifica como los

elementos del modelo serán instanciados.

En la Figura 4.1 se puede observar la metaclase Class definida en el metamodelo

MOF. Este elemento es instanciado en un modelo como la clase Task, el cual a su vez es

instanciada con la clase Calculator.

Figura 4.1: Ilustración de instancias en MOF

Class Task

<<instanciaDe>> <<instanciaDe>>

Calculator

Page 69: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

61

4.2 Metamodelo BPMN2

El objetivo principal de BPMN2 es proporcionar una notación que sea fácilmente

comprensible por todos los usuarios de negocio. El metamodelo BPMN2 expresa los

elementos de modelado que permiten construir instancias de modelos de procesos de negocio

en BPMN2.

4.2.1 Principales elementos del metamodelo BPMN2

Como se dijo anteriormente, los tipos de modelos son definidos por sus metamodelos. Para

poder comprenderlos es necesario conocer la estructura del metamodelo que los define. A

continuación se describen los principales elementos del metamodelo BPMN2.

La clase Definitions es la clase más externa que contiene a todos los elementos de

BPMN2. Este objeto define el alcance de visibilidad y el espacio de nombres para todos los

elementos contenidos en él. Además este elemento hereda los atributos y las asociaciones de

la clase BaseElement.

BaseElement es la superclase abstracta para la mayoría de los elementos de BPMN2.

Esta clase proporciona el identificador y la documentación.

RootElement es la superclase abstracta, sin atributos, para todos los elementos que

están contenidos dentro de Definitions. Además este elemento también hereda los atributos y

las asociaciones de BaseElement.

La clase Import es utilizada para referenciar elementos externos, ya sea elementos

BPMN2 contenidos en otros Definitions u otros elementos. Las importaciones deben ser

definidas explícitamente. Esta clase posee tres atributos los cuales identifican:

el tipo del documento que se importará (importType). Si se importan esquemas

XML el valor del atributo debe ser http://www.w3.org/2001/XMLSchema, si se

importan documentos WSDL 2.0 el valor debe ser

http://www.w3.org/TR/wsdl20 y si se importan documentos BPMN 2.0 el valor

deberá ser http://www.omg.org/spec/BPMN/20100524/MODEL,

la ubicación del elemento importado (location) y

el espacio de nombres del elemento importado (namespace).

Elementos de BPMN2, como objetos de datos (dataObjects) y mensajes, representan

ítems que son manipulados, transferidos, transformados o almacenados durante el flujo del

proceso. Estos ítems pueden ser objetos físicos, como una parte de un automóvil, o elementos

de información como un catálogo de automóviles. Esta diferenciación es almacenada en el

atributo itemKind de la clase ItemDefinition. Una característica importante de los ítems en el

proceso es su estructura. BPMN2 no requiere un formato particular para esta estructura de

datos, pero sí como defecto tienen un esquema XML. Un elemento ItemDefinition puede

especificar una referencia a donde está definida la estructura (structureRef). En los casos en

Page 70: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

62

que la estructura de datos representa una colección, la multiplicidad puede ser proyectada en

el atributo IsCollection. Si el atributo está establecido como verdadero pero en realidad la

estructura de datos no es una colección, el modelo es considerado inválido. Aquellas

herramientas que soportan el estándar BPMN2 pueden comprobar estas inconsistencias. El

valor por defecto de este atributo es falso. Los ItemDefinition están contenidos en Definitions.

La Figura 4.2 muestra los elementos descriptos anteriormente junto con sus relaciones.

Figura 4.2: Organización de los principales elementos BPMN2

4.2.2 Metamodelo y la Metaclase Process

La Figura 4.3 muestra los elementos fundamentales a la hora de modelar un proceso de

negocio. A continuación se describen algunos de ellos.

Un proceso (Process) describe una secuencia o flujo de actividades en una

organización con el objetivo de llevar a cabo un trabajo. El paquete Process contiene clases

que son utilizadas para modelar el flujo de actividades, eventos y compuertas, y cómo ellos

están ordenados dentro del proceso. Un proceso está definido dentro del objeto Definitions.

Por otro lado, un proceso es un objeto CallableElement, este permite que el proceso

pueda ser referenciado o reutilizado por otros procesos a través del constructor Call Activity.

En otras palabras, se puede decir que un proceso es un elemento reutilizable, el cual puede ser

importado y utilizado dentro de otros elementos Definitions.

El elemento process hereda los atributos y las asociaciones de la clase

CallableElement y de la clase FlowElementsContainer. Los elementos relacionados con

Page 71: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

63

process pueden observarse en la Figura 4.3.

FlowElementsContainer es una superclase abstracta la cual define el superconjunto de

elementos que están contenidos en los diagramas BPMN2. Un FlowElementsContainer

contiene FlowElements, los cuales son: eventos, compuertas, flujos de secuencia, actividades,

entre otros. Además hereda los atributos y las asociaciones de BaseElement.

FlowElement es la superclase abstracta para todos los elementos que pueden aparecer

en un flujo de proceso, los cuales son FlowNode (eventos, compuertas, flujos de secuencia,

actividades, objetos de datos y asociaciones de datos). El elemento FlowElement hereda los

atributos y las asociaciones de BaseElement.

Figura 4.3: Algunos elementos relacionados con Process

Los flujos de secuencia son utilizados para mostrar el orden de ejecución de los

elementos en un proceso. Cada flujo de secuencia tiene un solo origen (sourceRef) y un solo

destino (targetRef) que deben pertenecer al conjunto de FlowElement. Ambos son instancias

de FlowNode, es decir, deben ser eventos, actividades o compuertas, como muestra la Figura

4.3. El elemento SequenceFlow hereda los atributos y las asociaciones de FlowElement.

Un flujo de secuencia que tiene como origen una compuerta exclusiva, inclusiva o

compleja, o una actividad puede ser definido como un flujo por defecto.

El elemento FlowNode se utiliza para proporcionar un solo elemento como origen y un

solo elemento como destino de un flujo de secuencia. Esta restricción se puede observar en la

Page 72: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

64

Figura 4.3 en las asociaciones desde SequenceFlow a FlowNode donde la multiplicidad es uno

en los roles targetRef y sourceRef. Sólo los elementos que heredan de FlowNode pueden estar

conectados a través de un flujo de secuencia.

4.2.3 Metaclase Event y sus relaciones

Un evento es algo que sucede durante el curso de un proceso. Los eventos afectan el flujo de

los procesos. Los eventos se utilizan en distintas partes del proceso, pueden mostrar el

comienzo de una actividad, el fin de una actividad, un mensaje que llega, la interrupción de un

proceso, etc. La clase Event representa a los eventos y hereda los atributos y las asociaciones

de FlowNode y éste a su vez de FlowElement.

Existen tres tipos de eventos:

1. inicio: indica que un proceso comienza,

2. fin: indica donde finaliza un proceso,

3. intermedio: indica que algo sucede después de que el proceso ha comenzado y antes

de que termine el mismo.

Dentro de estos tres tipos, los eventos pueden diferenciarse en los que capturan un

disparador que los activará o los que producen un resultado. Los eventos que capturan un

disparador son los eventos de inicio y algunos eventos intermedios. Estos caen en la categoría

CatchEvent. Los eventos que producen un resultado son los eventos de fin y algunos

intermedios y estos caen en la categoría ThrowEvent.

La Figura 4.4 muestra el diagrama de clases donde se modela la clase Event junto con

algunas de sus relaciones. Aquí se observa como Event hereda de FlowNode y éste de

FlowElement. Además se puede observar los distintos tipos de eventos, ya sean capturadores

de disparos (CatchEvent) o los que arrojan un resultado (ThrowEvent).

Page 73: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

65

Figura 4.4: Clase Event y sus relaciones

4.2.4 Metaclase Activity y sus relaciones

Como se mencionó en el capítulo 2, una actividad representa una unidad de trabajo que es

realizada o ejecutada dentro de un proceso de negocio. Las actividades generalmente

requieren un tiempo para su ejecución, pueden necesitar recursos, suelen requerir algún tipo

de entrada y por lo general producen algún tipo de salida. En BPMN2 las actividades pueden

ser: tareas (tareas atómicas), sub-procesos (no atómicas - tareas compuestas) y Call-Activity

(subprocesos reutilizables). La clase Activity es una clase abstracta, subclase de FlowElement,

es por ello que hereda los atributos y las asociaciones de esta clase. La clase Activity es la

superclase para todos los tipos concretos de ésta. Ellos especifican una semántica adicional.

La Figura 4.5 muestra la clase Activity con algunas de sus relaciones. En ella se puede

observar como hereda de la clase de FlowElement a través de FlowNode. A continuación se

explican algunos de los nombres de roles que aparecen en la Figura antes mencionada:

ioSpecification: Este elemento define las entradas y salidas que pertenecen a

los conjuntos InputSets y OutputSets de las actividades, como se verá más

adelante.

properties: Define las propiedades que pueden añadirse a las actividades. Las

mismas están contenidas dentro de Activity.

resources: Define el recurso que llevará a cabo o que será responsable de la

actividad.

dataInputAssociations: Son referencias a DataInputAssociations. Un

DataInputAssociation define cómo los datos de entrada del

Page 74: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

66

InputOutputSpecification de la actividad son ingresados.

dataOutputAssociations: Son referencias a los DataOutputAssociations.

Figura 4.5: Clase Activity y sus relaciones

Una tarea es una actividad atómica dentro de un flujo de proceso. Ésta representa una

acción, no una función ni un estado. Una tarea se utiliza cuando el trabajo en el proceso no

puede ser dividido en mayor nivel de detalle. La clase Task hereda los atributos y asociaciones

de la clase Activity. La clase Task no posee atributos ni asociaciones. Existen diferentes tipos

de tareas para representar los distintos tipos de comportamiento que ellas pueden tener (ver

Figura 4.6). A continuación se detallan estos tipos:

Abstracta (None): Tarea genérica o indefinida, es decir que no está

especificada.

Usuario (User): Tarea que lleva a cabo un humano con la ayuda de una

aplicación de software y que está programada a través de una lista de tareas.

Manual (Manual): Es una tarea que se espera llevar a cabo sin la ayuda de

ningún motor de ejecución de procesos de negocio o cualquier otra aplicación.

Envío (Send): Está diseñada para enviar un mensaje a un participante externo

(en relación al proceso). Una vez que el mensaje ha sido enviado, la tarea se

completa.

Recepción (Receive): Está diseñada para esperar que llegue un mensaje de un

participante externo (en relación al proceso). Una vez que el mensaje ha sido

recibido, la tarea se completa.

Servicio (Service): Es una tarea que utiliza algún tipo de servicio, el cual puede

ser: servicio web o una aplicación automatizada. Esta tarea incluye los

atributos y asociaciones de Activity pero a su vez introduce restricciones

cuando el servicio hace referencia a una operación, es por ello que en la Figura

Page 75: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

67

4.6 puede observarse la clase Operation.

Script: Este tipo de tarea se ejecuta mediante un motor de procesos de negocio.

El modelador o implementador define el script en un lenguaje que el motor

puede interpretar. Cuando la tarea está lista para comenzar, el motor ejecutará

el script. Cuando el script fue ejecutado, la tarea finaliza. Esta clase posee dos

atributos adicionales: scriptFormat: el cual define el formato del script y que

además debe especificar si el script es provisto o no, y el atributo script el cual

representa si ha sido incluido éste o no. En caso de que no esté incluido se

comporta como una tarea abstracta.

Regla de Negocio (BusinessRule): Son expresiones formuladas a través de

reglas que serán ejecutadas a través de un motor. El InputOutputSpecification

de la tarea permitirá al proceso enviar datos y recibir datos desde el motor de

reglas de negocios.

El atributo implementation que poseen algunas de las clases de la Figura 4.6

especifican la tecnología que será utilizada para implementar esa tarea.

La Figura 4.6 muestra los distintos tipos de tareas junto con sus atributos y las

asociaciones adicionales que poseen algunas de ellas.

Figura 4.6: Clase Task junto con sus tipos y sus relaciones

Como se mencionó en el capítulo 2, un Call Activity identifica un punto en el proceso

donde otro proceso o una tarea global son utilizadas. La Figura 4.5 muestra como la clase Call

Activity hereda los atributos y asociaciones de la clase Activity.

Page 76: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

68

Un sub-proceso es una actividad cuyos datos internos han sido modelados con

actividades, compuertas, eventos y flujos de secuencia (ver Figura 4.7). Esta clase hereda de

la clase FlowElementsContainer y ésta, como se dijo anteriormente, es una superclase

abstracta la cual define el superconjunto de los elementos que están contenidos en los

diagramas BPMN2. FlowElementsContainer posee una asociación con FlowElement. Es así

como un sub-proceso puede poseer eventos, compuertas, flujos de secuencia y actividades.

Figura 4.7: Clase Sub-Process

4.2.5 Metaclase Gateway y sus relaciones

Las compuertas son utilizadas para controlar los flujos de los procesos a través de los flujos

de secuencia que divergen o convergen dentro en un proceso. Si el flujo no tiene que ser

controlado, entonces no son necesarias las compuertas. Además las compuertas pueden tener

múltiples entradas y múltiples flujos de salida. Las compuertas pueden definir todos los tipos

de comportamientos de los flujos de secuencia en un proceso de negocio: exclusivo, inclusivo,

paralelo, complejo y basados en eventos. La Figura 4.8 muestra estos tipos de compuertas.

Page 77: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

69

Figura 4.8: Diagrama de clase para los tipos de compuertas

Las compuertas inclusivas, exclusivas y complejas poseen varios flujos de secuencia

salientes, si ninguno de ellos evalúan en verdadero se utiliza un flujo adicional por defecto

como se puede observar en la Figura 4.8 donde algunas de las asociaciones hacia la clase

SequenceFlow poseen como rol default. Este flujo por defecto no debe poseer ninguna

expresión de condición. Además en la Figura 4.8 se puede observar un rol

activationCondition, éste determinará qué combinación de tokens entrantes deben

sincronizarse para activar la compuerta compleja.

4.2.6 Objetos de datos en el metamodelo

En muchas ocasiones es necesario modelar los datos en un proceso de negocio, requiriendo

que estos datos puedan ser creados, manipulados o utilizados para ejecutar las actividades que

participan en él. Este requerimiento se implementa a través de objetos de datos (data objects),

tipo de ítems (ItemDefinition), propiedades (propierties), datos de entrada (data inputs), datos

de salida (data outputs), conjuntos de entrada (inputSets), conjuntos de salida (outputSets), y

asociaciones de datos (data associations).

Los elementos o ítems que pueden almacenarse o transportarse durante la ejecución

generalmente son referenciados como elementos “itemAware”. Estos elementos poseen una

definición de tipo (ItemDefinition), sin embargo un elemento itemAware puede ser sub-

especificado, lo que significa que colocar el elemento ItemDefinition es opcional.

En BPMN2 los elementos definidos como itemAware son: objetos de datos,

referencias a objetos de datos, almacenes de datos, propiedades, datos de entrada y datos de

Page 78: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

70

salida. Estos elementos pueden observarse en la Figura 4.9.

Figura 4.9: Clase ItemAwareElement

Como se puede observar en la Figura 4.9 el elemento ItemAwareElement hereda los

atributos y las asociaciones de la clase BaseElement. Además se muestra una relación entre la

clase ItemAwareElement y la clase ItemDefinition con un nombre de rol ItemSubjectRef. Esto

significa que un objeto de la clase ItemAwareElement puede poseer un atributo itemSubjectRef

y éste define el tipo del ítem (itemKind) que podrá ser físico o información, que puede ser una

colección (isCollection) o no, y que tendrá una referencia a un elemento (structureRef).

Las actividades y los procesos generalmente necesitan datos para ejecutarse. Además,

pueden producir datos o resultados durante la ejecución. Los requerimientos de datos son

capturados como datos de entradas (dataInputs) en los conjuntos de entradas (InputSets). Los

datos que se producen son capturados como datos de salidas (dataOutputs) en los conjuntos

de salidas (OutputSets). Todos estos elementos son agrupados en una clase llamada

InputOutputSpecification. Los procesos poseen un elemento InputOutputSpecification en el

cual están alojados todos los datos de entrada y salida que participan en todo el proceso. Las

actividades también poseen este elemento. En él estarán los datos de entrada y salida que

participan en esa actividad en particular. Cabe aclarar que no todos los tipos de actividades

definen datos de entrada y salida, sólo las tareas y los elementos CallableElements (tareas

globales y procesos) pueden definir este requerimiento. El elemento InputOutputSpecification

hereda los atributos y las asociaciones de BaseElement. La Figura 4.10 muestra las relaciones

vinculadas con la clase InputOutputSpecification.

Page 79: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

71

Figura 4.10: Relaciones vinculadas a InputOutputSpecification

Los datos de entradas (data inputs) se utilizan como entrada de un

InputOutputSpecification. Como se puede observar en la Figura 4.10 puede haber múltiples

datos de entrada asociados a un InputOutputSpecification. Un elemento DataInput es un

elemento itemAware, en consecuencia hereda los atributos y las asociaciones de BaseElement.

Los datos de salida (data outputs) son datos que se producen y que son asociados a un

InputOutputSpecification. Puede haber múltiples datos de salida asociados a un

InputOutputSpecification, como se observa en la Figura 4.10. Un elemento DataOutput es un

elemento itemAware, en consecuencia hereda los atributos y las asociaciones de BaseElement.

Un conjunto de entradas (inputSet) es una colección de datos de entradas que juntos

definen un conjunto válido de datos de entradas para una InputOutputSpecification. Un

InputOutputSpecification debe tener al menos un conjunto de entradas. Un conjunto de

entradas puede hacer referencia a cero o más datos de entradas. Un dato de entrada puede

asociarse a múltiples conjuntos de entradas, pero siempre debe hacer referencia al menos a un

conjunto de entradas (ver Figura 4.10). Un conjunto de entradas vacío indica que la actividad

Page 80: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

72

no requiere datos para iniciar la ejecución. El elemento InputSet hereda los atributos y las

asociaciones de BaseElement.

Un conjunto de salidas (outputSet) es una colección de datos de salidas los cuales

definen salidas producidas por actividades. Un InputOutputSpecification debe tener al menos

un conjunto de salidas y este conjunto puede tener cero o más datos de salida. Un dato de

salida puede asociarse a múltiples conjuntos de salidas, pero siempre debe hacer referencia al

menos a un conjunto de salidas (ver Figura 4.10). Un conjunto de salidas sin elementos,

significa que la actividad no produce datos de salidas. El elemento OutputSet hereda los

atributos y las asociaciones de BaseElement.

Como se observó en el capítulo 2, una asociación de datos es utilizada para mover

datos entre objetos de datos, propiedades, entrada/salidas de actividades, procesos y tareas

globales. Una asociación de datos tiene origen y destino; cuando la asociación de datos es

ejecutada, el dato del origen de la asociación es copiado en el destino. Las asociaciones de

datos son utilizadas en las diferentes etapas del proceso y en el ciclo de vida de una actividad.

La clase DataAssociation es un BaseElement contenido en una actividad o evento.

Estas asociaciones se utilizan para modelar como un dato navega hacia o desde un elemento

itemAware. Un elemento DataAssociation tiene uno o más orígenes y un destino. Éste

elemento puede observarse en la Figura 4.11. En esta misma Figura también se puede

observar como un elemento itemAware puede poseer un ItemDefinition. Tanto el origen

(sourceRef) como el destino (targetRef) deben tener el mismo ItemDefinition o la asociación

de datos (DataAssociation) debe poseer una expresión de transformación el cual transforme el

ItemDefinition origen en el ItemDefinition destino. Si no existe una transformación definida,

el contenido del origen es copiado en el destino. Si existe una transformación, la expresión es

evaluada y el resultado es copiado en el destino.

Figura 4.11: Clase DataAssociation

Page 81: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

73

En cualquier caso, los orígenes son utilizados para definir si la asociación de datos

puede ser "ejecutada"; si algún origen no está disponible, la asociación de datos no se podrá

ejecutar, y la actividad o el evento, donde la asociación de datos es definida, debe esperar que

la condición se cumpla.

Las asociaciones de datos siempre se encuentran contenidas dentro de otro elemento

que define cuándo estas asociaciones de datos se van a ejecutar. La Figura 4.11 muestra como

la clase DataAssociation hereda los atributos y asociaciones de BaseElement.

Un elemento DataInputAssociation se utiliza para asociar un elemento itemAware con

un dato de entrada contenido en una actividad. Es decir, un DataInputAssociation asocia un

dato de entrada del proceso con un dato de entrada de la actividad. De esta forma es posible

saber que datos de entrada de un proceso participan en alguna actividad. El elemento

DataInputAssociation hereda los atributos y las asociaciones de la clase DataAssociation (ver

Figura 4.11).

El DataOutputAssociation se utiliza para asociar un dato de salida contenido dentro de

una actividad con cualquier elemento itemAware. El destino de una asociación de datos puede

ser un elemento itemAware. Un DataOutputAssociation asocia un dato de salida de una

actividad con un dato de salida del proceso. De esta forma es posible saber que datos de salida

de un proceso participan en las actividades. El elemento DataOutputAssociation hereda los

atributos y las asociaciones de la clase DataAssociation (ver Figura 4.11).

4.2.7 Extensiones en el metamodelo

Por otro lado, el metamodelo BPMN2 está pensado para ser extendido. Esto permite ampliar

el metamodelo para satisfacer necesidades específicas para dominios particulares. Para esto

BPMN2 proporciona un conjunto de elementos de extensión, los cuales permite añadir

constructores necesarios sin romper el cumplimiento del estándar. De esta manera, permite

construir modelos intercambiables y ejecutables en motores de flujos de trabajo BPMN2 con

las adecuadas extensiones para soportarlos.

Todos los elementos BPMN2 son subclases de BaseElement, es por ello que todos

estos elementos pueden ser extendidos agregando atributos. La extensión en BPMN2 puede

realizarse con cuatro elementos diferentes, tal como muestra Figura 4.12:

el elemento Extension, el cual se une a un atributo ExtensionDefinition y sus

atributos a la definición del modelo BPMN2,

el elemento ExtensionDefinition, el cual define y agrupa atributos adicionales,

el elemento ExtensionAttributeDefinition, el cual define nuevos atributos y

el elemento ExtensionAttributeValue, el cual contiene el valor del atributo.

Page 82: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

74

Figura 4.12: Extensiones en BPMN2

4.3 Metamodelo de ESTECO

ESTECO es una empresa pionera en soluciones de optimización numérica, especializada en la

investigación y desarrollo de software de ingeniería para todas las etapas del proceso de

diseño dirigido por simulación. La misma ha desarrollado modeFRONTIER, una plataforma

de integración para la optimización multi-objetivo y multi-disciplinaria. Esta permite la

automatización de procesos de simulación, y facilita la toma de decisiones analítica [2].

El proceso simulado posee una representación gráfica (utilizado por el ingeniero para

modelar el proceso), mientras que el modelo de ejecución asociado está representado en

XML. Éste último es utilizado por un motor con el fin de ejecutar el flujo de trabajo y llevar a

cabo la simulación.

Los flujos de trabajo incluyen nodos de eventos, nodos de tarea para cada actividad y

nodos de datos utilizados para representar los datos de entrada y salida. Los datos pueden

representar datos simples, como enteros, dobles, vectores, matrices o datos más complejos,

como archivos o bases de datos. Las actividades corresponden a la ejecución de simuladores,

scripts y otras aplicaciones en ubicaciones locales o remotas.

El metamodelo de ESTECO expresa cuáles son los elementos válidos de modelado

para construir instancias de flujos de trabajo de ESTECO. La Figura 4.13 muestra un

diagrama de clase con los elementos principales del metamodelo de ESTECO.

Page 83: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

75

Figura 4.13: Elementos principales del metamodelo ESTECO

La clase TGeometry es la clase más externa de todos los elementos del metamodelo de

ESTECO. Todos los elementos de ESTECO están contenidos en un TGeometry. La clase

TGeometry posee relaciones hacia los elementos básicos del metamodelo. Cada relación

posee un nombre de rol, lo que significa que la clase TGeometry posee atributos de estas

clases. A continuación se explican los nombres de rol que aparecen en la Figura 4.13:

dataEdge: Este elemento define la conexión entre los datos de entrada y salida

con las tareas,

processEdge: Este elemento define la conexión entre los eventos y las tareas y

la conexión entre las tareas,

outputDataNode: Representa los datos de salida,

inputDataNode: Representa los datos de entrada,

taskNode: Representa las tareas de ESTECO,

startNode Representa el evento de inicio,

exitNode Representa los eventos de fin.

La Figura 4.14 muestra los elementos relacionados a los eventos. Las clases

TStartNode y TExitNode representan los nodos de inicio y de fin respectivamente en un flujo

de trabajo. Estas clases heredan los atributos y asociaciones de TEventNode y ésta a su vez de

TNode. Las clases TEndConnector y TStartConnector permiten a otro elemento del

metamodelo determinar desde y hacia dónde se dirige la ejecución (ver más adelante). TNode

es una clase abstracta de la cual heredan muchos de los principales elementos en el

Page 84: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

76

metamodelo de ESTECO.

Figura 4.14: Elementos relacionados a los Eventos

Los elementos del metamodelo poseen conectores los cuales ayudan a determinar con

quienes están relacionados. Estos conectores asisten a los elementos dataEdge y processEdge.

El elemento dataEdge relaciona los datos de entrada y salida con las tareas. El elemento

processEdge relaciona los eventos con las tareas y las tareas entre ellas. La Figura 4.15

muestra estos elementos. Los atributos from y to contienen los identificadores de aquellos

conectores que deben relacionar.

Figura 4.15: Conectores del metamodelo

Como se dijo anteriormente, las tareas y los procesos generalmente necesitan datos

para su ejecución. Además, pueden producir datos o resultados durante la ejecución. Como

puede observarse en la Figura 4.16, las asociaciones que tiene TGeometry poseen los roles de

inputDataNode y outputDataNode. Estos roles hacen referencia a los tipos de datos del

metamodelo de ESTECO. Los datos de entrada y salida son capturados en TInputDataNode y

TOutputDataNode respectivamente. Estos elementos heredan los atributos y asociaciones de

la clase TDataNode, la cual posee el tipo del dato y que a su vez hereda de la clase TNode la

cual posee el identificador y el nombre del dato. El elemento TInputDataNode es un tipo

Page 85: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

77

particular de TDataNode el cual se utilizará como entrada de un objeto TGeometry a una

tarea. Este elemento posee uno o más outputDataConnector. Este conector ayuda a

determinar que tareas tendrán como entrada ese dato. El elemento TOutputDataNode es un

tipo particular de TDataNode el cual almacena el dato producido por una tarea contenida en

TGeometry. Este elemento posee dos conectores, outputDataConnector el cual ayuda a

determinar que tareas tendrán como entrada ese dato producido, y el conector

inputDataConnector el cual ayuda a determinar que tarea es la que produjo ese dato.

Figura 4.16: Modelado de Datos

Las tareas, además de llevar un cierto tiempo para ejecutarlas, pueden necesitar

recursos, datos y propiedades específicas dependiendo del dominio. Una tarea que se realiza

dentro de un flujo de trabajo industrial de ESTECO se representa a través de la clase

TTaskNode. Esta clase posee conectores para relacionarse con los datos:

bufferInputDataConnector y bufferOutputDataConnector, y conectores para relacionarse con

las tareas y con los eventos: endConnector y startConnector. Estos conectores asisten a los

Page 86: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

78

elementos dataEdge y processEdge como se mencionó anteriormente. En la Figura 4.17

puede observarse en la clase TTaksNode algunos atributos que representan propiedades

propias de ESTECO. La clase TTaksNode hereda los atributos y asociaciones de la clase

TNode.

Figura 4.17: Modelado de Tareas

Como se mencionó anteriormente, los metamodelos son los encargados de definir la

semántica que especifica cómo los elementos del modelo serán instanciados, es decir que los

metamodelos se utilizan para describir distintos tipos de modelos. Las transformaciones

permiten transformar un modelo en otro pero sus reglas son genéricas y están escritas a nivel

de metamodelo. El siguiente capítulo explica cómo están construidas estas reglas y cómo

hacer referencia a los elementos de los metamodelos descriptos en este capítulo.

Page 87: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

79

Capítulo 5

Transformaciones

La clave de MDA son los modelos y las transformaciones entre ellos ya sea para refinarlos o

para llegar a código ejecutable. Teniendo en mente este objetivo, la OMG propone el lenguaje

estándar QVT para expresar consultas y definir transformaciones de modelos. BPMN2 ha sido

desarrollado teniendo en cuenta algunas limitaciones y dándole mayor importancia a los

objetos de datos persiguiendo el objetivo de poder interpretar y ejecutar directamente los

modelos. Los flujos de trabajo ingenieriles, comparten muchas características con los

conocidos flujos de trabajo científicos, muy utilizados en la industria hoy en día. Si bien estos

flujos de trabajo son ampliamente utilizados, actualmente no existe ningún estándar para la

definición de los mismos. Con el fin de construir modelos unificados y estandarizados, los

flujos de trabajo ingenieriles de la empresa ESTECO serán transformados al nuevo estándar

de BPMN2 permitiendo además la ejecución de los mismos.

El presente capítulo muestra en primer lugar la arquitectura de la transformación, explicando

los diferentes niveles y los elementos que la componen. Posteriormente se describe cuales son

los elementos transformados en este trabajo y cuales son sus correspondencias. Finalmente se

muestra, de manera detallada, como se realiza la transformación de una parte significativa de

este trabajo de tesis, ilustrando la definición de las reglas (relaciones) escritas en el lenguaje

Relations QVT, junto con la correspondencia entre los elementos de los metamodelos

involucrados en la transformación. Esta transformación fue definida utilizando Medini QVT,

herramienta desarrollada por tecnologías IKV++ con integración de Eclipse [59].

5.1 Arquitectura

Como se explicó en el capítulo 3, la transformación de modelos es considerado el proceso

central de MDA. Este proceso consiste en convertir un modelo en otro basado en una serie de

reglas. Para lograr esto, la OMG ha definido un conjunto específico de capas y

transformaciones. En particular, la OMG identifica tres tipos de modelos los cuales cubren

todo el ciclo de vida de un sistema de software: modelo independiente de la computación

(CIM), modelo independiente de la plataforma (PIM) y modelo específico de la plataforma

(PSM).

Page 88: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

80

Como se explicó en el capítulo 3 un CIM es una vista de un sistema desde el punto de

vista de computación independiente, a veces es llamado modelo de dominio o modelo de

negocio. CIM representa un nivel alto en el modelado. Es decir que se puede ocultar mucho o

toda la información sobre el uso de los sistemas automatizados de procesamiento de datos.

Este modelo es independiente de cómo se implementa el sistema. Uno de los objetivos de los

CIM es que cualquiera que sea capaz de comprender las necesidades y los procesos que

actuarán en un sistema pueda comprender un CIM.

Un PIM es una vista de un sistema el cual representa la lógica del sistema y sus

interacciones con el mundo exterior, ocultando los detalles necesarios para una plataforma en

particular [50]. Un PIM representa un modelo sin hacer referencia a ninguna plataforma en la

cual será desarrollada la aplicación, además ignora los sistemas operativos, los lenguajes de

programación, el hardware, etc. Es decir que este modelo debe tener tal nivel de abstracción

que no cambie, sea cual fuere la plataforma elegida para su implementación.

Un PSM es una vista de un sistema desde el punto de vista específico de la plataforma,

es decir, es un modelo del sistema con detalles específicos a la plataforma en la cual será

implementado, es decir que los PSMs tienen que tener en cuenta explícitamente los sistemas

operativos, los lenguajes de programación y las plataformas. Un PSM producido por la

transformación desde un PIM, representa el mismo modelo pero en otro nivel de abstracción.

PSM puede proveer diferentes niveles de detalles, dependiendo su propósito. PSM será una

implementación, si éste proporciona toda la información necesaria para construir un sistema y

ponerlo en funcionamiento, o puede actuar como un PIM que es utilizado para fomentar el

refinamiento para un PSM que puede ser directamente implementado [6]. Se puede decir

entonces que un PSM es un PIM el cual tendrá detalles específicos para ser implementado en

una plataforma determinada. PSM es un modelo de bajo nivel, muy cercano al código.

En este trabajo de tesis se presenta una transformación horizontal, es decir convertir un

modelo de un nivel a otro modelo del mismo nivel, pero ambos basados en modelos de nivel

superior (metamodelos) diferentes.

Las transformaciones QVT describen las relaciones entre metamodelos fuentes y

metamodelos destinos, ambos especificados en MOF [54]. La transformación definida es

aplicada al modelo origen, el cual es una instancia del metamodelo ESTECO, para obtener el

modelo destino, instancia del metamodelo BPMN2. La Figura 5.1 muestra la arquitectura de

transformación de modelos; en ella se ilustra cómo se definen y aplican las transformaciones

que están basadas en la utilización de metamodelos. En el nivel superior se puede observar los

metamodelos utilizados en la definición de la transformación, ESTECO y BPMN2

respectivamente. En el nivel intermedio se encuentran los modelos específicos a los cuales se

les aplicará la transformación, definida anteriormente, para obtener modelos BPMN2. El nivel

inferior representa las instancias de los modelos, los cuales serán ejecutados en el

correspondiente motor del flujo de trabajo.

Page 89: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

81

Figura 5.1: Arquitectura de la Transformación

La Figura 5.1 está directamente relacionada con la arquitectura UML. Esta

arquitectura se divide en cuatro capas conceptuales. Un ejemplo que ayuda a explicar los

niveles de modelado se muestra en la Figura 5.2 [14].

Figura 5.2: Ejemplo de la jerarquía de las cuatro capas del metamodelo

Como se dijo anteriormente, el nivel del meta-metamodelado es la base en la jerarquía

de metamodelado. Su responsabilidad principal es definir el lenguaje para la especificación de

un metamodelo. La capa se denomina M3 y MOF es un ejemplo de un meta-metamodelo.

TaskNode

:TaskNode

Calculator

+type: String<<imagen >>/

<<instanciaDe>>

<<instanciaDe>> <<instanciaDe>> <<instanciaDe>> <<instanciaDe>>

<<instanciaDe>> <<instanciaDe>> <<instanciaDe>>

<<clasificador>>

Metamodelo

de ESTECO

Instancia

ESTECO

Instancia

BPMN2

Modelo

ESTECO

Modelo

BPMN2

Metamodelo

de BPMN2

Definición de la Transformación

utilizando QVT

Aplicación de la Transformación

Transformación de las instancias

ejecutables del modelo

Page 90: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

82

Dicho lenguaje se define por la OMG con el fin de definir constructores y mecanismos para

describir metamodelos. En general, es conveniente que tanto el meta-metamodelo y el

metamodelo compartan constructores comunes. Sin embargo, cada capa puede ser vista

independientemente de otras capas.

Un metamodelo es una instancia de un meta-metamodelo. Su responsabilidad

principal es definir un lenguaje para especificar modelos. La capa se denomina M2. Ejemplos

que se encuentran en este nivel son UML, además de los metamodelos de BPMN2 y

ESTECO, como se observó en la Figura 5.1. Todos estos están expresados en MOF.

Un modelo es una instancia de un metamodelo. Su responsabilidad principal es definir

los lenguajes que describen los dominios semánticos, es decir, permitir a los usuarios modelar

una amplia variedad de dominios. Esta capa se denomina M1. Los modelos de ESTECO y

BPMN2 caen en este nivel. Los conceptos definidos en M1 especifican la clasificación para

los elementos de M0.

Los elementos de la capa denominada M0 son instancias de un modelo particular, de

un sistema real. Un ejemplo de una instancia de la clase TaskNode es Calculator, ver Figura

5.2.

5.2 Transformación y Relación Funcional

Un proceso es el elemento principal en el modelado de flujos de trabajo de negocio. Un

proceso describe una secuencia o flujo de actividades de una organización con el objetivo de

llevar a cabo un trabajo. En BPMN2 un proceso se representa como un grafo de actividades,

eventos y compuertas, los cuales están relacionados por los flujos de secuencia que definen el

flujo de ejecución.

Como se presentó en el capítulo 4, un proceso está contenido en el elemento

Definitions [4]. Un proceso es instanciado cuando ocurre un evento de inicio. Un evento de

fin indicará donde el proceso terminará, terminando el flujo de ejecución. Las actividades

representan tareas a realizar. Los datos de entrada y de salida están contenidos en un objeto

oiSpecification, los cuales no sólo están definidos en el proceso, sino que también están

definidos en aquellas actividades en las cuales participan.

La Figura 5.3 ilustra la correspondencia entre los elementos de ESTECO y los de

BPMN2. Cada caja corresponde a un elemento XML, y la jerarquía entre los elementos es

representada con la estructura de un árbol.

En la parte de ESTECO puede observarse que el elemento principal es TGeometry.

Éste posee los nodos de inicio y fin, las tareas, los datos de entrada (inputDataNode), los

datos de salida (outputDataNode), los conectores (dataEdge) para conectar los datos con una

tarea y otros conectores (processEdge) para realizar la conexión de los eventos con las tareas

y la conexión entre las tareas. Además puede observarse en la Figura 5.3 que cada elemento

Page 91: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

83

de TGeometry posee conectores que asisten a los elementos dataEdge y processEdge.

En la parte de BPMN2 se observa que el elemento principal es definitions y con él el

elemento proceso (process) el cual contiene los eventos de inicio y fin, las tareas, flujos de

secuencia y el objeto ioSpecification el cual contiene los datos de entrada y salida que

participan en el proceso.

En la transformación de las tareas es necesario utilizar en más de una oportunidad el

mecanismo de extensión de BPMN2 para satisfacer las necesidades específicas de ESTECO.

Cada tarea posee un elemento propio de ESTECO (providerKey) el cual es agregado a través

del mecanismo de extensión. Además posee un objeto ioSpecification el cual contiene los

datos que participan en la tarea [4], como se mencionó en el capítulo 4. Estos datos son, datos

de entrada (dataInputs), datos de salida (dataOutputs), conjunto de datos de entrada

(inputSets) y conjunto de datos de salida (outputSets). Cada dato de entrada relacionado a una

tarea del flujo de trabajo de ESTECO, capturado en el objeto inputDataNode, es transformado

en un dato de entrada (dataInput) de BPMN2, junto con elementos propios de ESTECO. En la

Figura 5.3 puede observarse como los dataInput poseen estos elementos para extender el

metamodelo. Además las tareas poseen propiedades específicas dependiendo del tipo de tarea.

Estas propiedades se representan con el elemento properties de BPMN2 junto con elementos

propios de ESTECO. Por último las tareas poseen las asociaciones de datos, estos son:

dataInputAssociation y dataOutputAssociation.

Page 92: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

84

Figura 5.3: Correspondencia entre los elementos de ESTECO y los de BPMN2

ESTECO BPMN2

process

ioSpecification

startEvent

Task

ioSpecification

dataInput

extensionValues

default

dataOutput

inputSet

outputSet

endEvent

sequenceFlow

TGeometry

startNode

endConnector

taskNode

startConnector

bufferInputDataConnector

inputDataNode

outputDataNode

outputDataConnector

inputDataConnector

outputDataConnector

dataEdge

endConnector

bufferOutputDataConnector

dataInput

dataOutput

inputSet

outputSet

exitNode

startConnector

definitions

processEdge

extensionValues

providerKey

properties

extensionValues

default

dataInputAssociation

sourceRef

targetRef

dataOutputAssociation

sourceRef

targetRef

Page 93: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

85

5.3 Reglas definidas para la transformación

Una transformación especifica un grupo de relaciones que los elementos de los modelos

involucrados deben satisfacer. Como se mencionó en capítulos anteriores una transformación

puede tener cualquier número de parámetros de entrada y salida. Los parámetros de entrada

corresponden a los modelos a los cuales se les aplicará la transformación para generar los

parámetros de salida. Para cada parámetro de salida, una nueva instancia de modelo será

creada y/o modificada de acuerdo al metamodelo al que pertenece dicho modelo destino (en

este trabajo, el metamodelo es BPMN2).

Cada dominio identifica una correspondencia de un conjunto de elementos definidos

llamados patrones.

Una relación en QVT define reglas de transformación, y esa relación implica la

existencia de clases para cada uno de sus dominios. El dominio es un tipo el cual puede ser la

raíz de un patrón. Un dominio implica la existencia de una propiedad del mismo tipo en una

clase. Como se dijo anteriormente, un patrón puede ser visto como un conjunto de variables y

un conjunto de restricciones que los elementos de los modelos deben satisfacer. Además se

vio, que los dominios pueden ser marcados como checkonly y enforce y que las relaciones

pueden contener las cláusulas when y where [48]. Un tipo de modelo es definido por un

metamodelo y un conjunto opcional de expresiones de condición.

Para ilustrar cómo se van transformando los elementos, a continuación se mostrarán

las relaciones correspondientes a un nodo de inicio [13], una tarea [13], flujo de ejecución y

los datos involucrados a la tarea [11] [12]. Las relaciones completas se pueden observar en el

Anexo A.

Las transformaciones comienzan definiendo el nombre de la misma junto con los

modelos candidatos y sus metamodelos respectivamente. En la Figura 5.4 se muestra la

transformación ESTECOToBPMN2, la cual toma como modelo origen un modelo ESTECO,

el cual es una instancia del metamodelo ESTECO, y produce como modelo destino un modelo

BPMN2, el cual será una instancia del metamodelo BPMN2. Tanto el metamodelo de

ESTECO como de BPMN2 se encuentran en formato ecore. Además, se presenta la relación

createProcess, la cual constituye el punto de entrada para comenzar la transformación en

QVT. La finalidad de esta relación es crear la etiqueta Definitions, etiqueta principal en

cualquier modelo BPMN2 la cual contiene la etiqueta Process, e invocar a las otras relaciones

encargadas de completar la transformación para la creación del modelo BPMN2.

Page 94: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

86

Figura 5.4: Definición de la transformación

El dominio definido como enforce corresponde al modelo BPMN2, lo cual significa

que este modelo será una instancia del metamodelo BPMN2. La Figura 5.5 muestra parte de

este metamodelo donde pueden observarse los elementos utilizados en la Figura 5.4.

Figura 5.5: Elementos involucrados en la relación createProcess

transformation ESTECOToBPMN2(source : esteco_m, target : bpmn2){

top relation createProcess {

checkonly domain source g:esteco_m::TGeometry{ };

enforce domain target d : bpmn2::Definitions{

rootElements = r : bpmn2::Process{

name = 'EstecoMainProcess',

id = 'EstecoMainProcess',

isExecutable = true,

processType = bpmn2::ProcessType::Private

}

};

where {

createSequenceFlowStart2Activity(g, r);

taskNode2taskBPMN2(g, r);

}

}

}

Page 95: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

87

Una vez creado el proceso con sus respectivas etiquetas, la transformación se dirige

hacia la cláusula where para chequear que las relaciones createSequenceFlowStart2Activity y

taskNode2taskBPMN2 se satisfagan. Estas relaciones definen el mapeo entre los elementos

del metamodelo ESTECO y los elementos del metamodelo BPMN2 relacionados con el

evento de inicio y las tareas respectivamente.

La Figura 5.6 muestra la relación createSequenceFlowStart2Activity. Esta relación

define la transformación de un evento de inicio de ESTECO hacia una tarea relacionados a

través de un conector.

Figura 5.6: Relación para transformar un evento de inicio

En esta relación puede observarse como un nodo de inicio (startNode) se transforma

relation createSequenceFlowStart2Activity{

e_id :String;

e_name : String;

id_end_connector: String;

checkonly domain source g : esteco_m::TGeometry{

taskNode = task : esteco_m::TTaskNode {

startConnector = start_connector : esteco_m::TStartConnector {}

},

processEdge = process_edge : esteco_m::TProcessEdge {},

startNode = s:esteco_m::TStartNode {

id = e_id,

name = e_name,

endConnector = e : esteco_m::TEndConnector{

id= id_end_connector

}

}

};

enforce domain target p:bpmn2::Process{

flowElements = f :bpmn2::StartEvent{

id= e_id,

name= e_name },

flowElements = flow : bpmn2::SequenceFlow {

sourceRef = f,

targetRef = task2 : bpmn2::Task {

id = task.id

}

}

};

when {

if (id_end_connector = process_edge.from and start_connector.id = process_edge.to )

then

true else

false

endif;

}

}

Page 96: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

88

en un evento de inicio (startEvent). El nodo de inicio posee un conector de fin

(endConnector) el cual ayudará a determinar hacia donde se dirige la ejecución. Un nodo de

tarea (taskNode) posee un conector de inicio (startConnector) el cual también ayudará a

determinar desde donde proviene la ejecución. El nodo processEdge es el encargado de

relacionar el conector de fin (del nodo de inicio) y el conector de inicio (del nodo de tarea).

Ambos conectores asisten al objeto processEdge para generar la conexión entre el nodo de

inicio y el nodo de tarea. En conclusión se puede observar cómo el objeto processEdge

corresponde a un flujo de secuencia de BPMN2.

En la Figura 5.7 se puede ver parte de los metamodelos involucrados en la relación

antes vista.

ESTECO

BPMN2

Figura 5.7: Elementos de los metamodelos involucrados en la relación

createSequenceFlowStart2Activity

De manera similar se genera la transformación del nodo de fin junto con su flujo de

ejecución, ver Anexo A relación: createEndEventSequenceFlowActivity2EndEvent.

Continuando con el análisis de la Figura 5.4, se puede observar que la cláusula where

de esta Figura también posee la relación taskNode2taskBPMN2. Está relación define el mapeo

entre las tareas de ESTECO y las tareas del BPMN2 (ver Figura 5.8).

Page 97: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

89

Figura 5.8: Relación para transformar una tarea

En esta relación se puede destacar 3 partes. La primera parte hace referencia al

dominio ESTECO marcado con checkonly. Aquí se muestra el procedimiento para extraer los

valores referidos a las tareas pertenecientes a la instancia del metamodelo ESTECO (modelo

origen) tales como su identificador (id), su nombre (name), una propiedad específica (charset)

y el tipo de la tarea (type). La segunda parte hace referencia al dominio BPMN2 marcado

como enforce. Esto es, si la comprobación falla, se modificará el modelo destino, creando,

borrando o modificando sus elementos para lograr satisfacer la relación. En este caso se

crearán elementos en el modelo BPMN2 (modelo destino). La Figura 5.9 muestra los

elementos de los metamodelos involucrados en esta relación.

relation taskNode2taskBPMN2 {

id_task, name_task, charset_task, type_task : String;

valueType:String;

checkonly domain source g:esteco_m::TGeometry {

taskNode = t :esteco_m::TTaskNode{

id= id_task,

name= name_task,

charset= charset_task,

type= type_task

}

};

enforce domain target p:bpmn2::Process {

flowElements = f :bpmn2::Task {

name = name_task,

id = id_task,

extensionValues= extension : esteco::DocumentRoot {

providerKey = prp :esteco::TRequiredValue{

value = valueType

}

}

}

};

where{

valueType = if (type_task = 'it.esteco.integration.calculator.workflow.CalculatorNode') then

'Calculator'

createIOSpecificationTask(g, f, id_task);

createSequenceFlow(g,id_task, p);

-- si es un Calculator se generan las propiedades de Calculator

if (valueType='Calculator')then

propertyCalculator(g, name_task, charset_task, f, id_task)

}

}

Page 98: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

90

ESTECO

BPMN2

Figura 5.9: Elementos de los metamodelos involucrados en la relación taskNode2taskBPMN2

Note además que en la relación aparece un atributo extensionValues (en el modelo

destino), este atributo pertenece a la clase BaseElement del metamodelo BPMN2, el cual está

definido por el tipo ExtensionAttributeValue.

Para comprender las extensiones tratadas durante el proceso de transformación, es

necesario hacer referencia a la definición de los tipos en el metamodelo ESTECO. Parte de

esta definición es presentada en la Figura 5.10, donde la clase DocumentRoot, elemento

principal en un modelo ecore, hereda los atributos y las asociaciones de la clase

ExtensionAttributeValue, clase perteneciente a la definición de BPMN2, como puede verse en

la Figura 5.9. Esto es necesario para agregar nuevos atributos que no pertenecen a BPMN2,

por ejemplo se añade al modelo destino el atribute providerKey perteneciente a la clase

DocumentRoot y del tipo TRequiredValue, clase de ESTECO la cual posee un atributo value.

Figura 5.10: Elementos del metamodelo ESTECO para extender las tareas

Como se dijo al principio de este capítulo, la transformación de tareas implica también

la transformación y/o generación de otros elementos los cuales están involucrados en ellas.

Page 99: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

91

ESTECO posee distintos tipos de tareas, cada una de estas posee propiedades

específicas. Es decir, dependiendo del tipo de la tarea deben crearse propiedades particulares.

La distinción de estos tipos pueden observarse en la clausula where, tercera parte de la

relación. A través de una condición se le asignará a una variable el tipo de tarea, en este caso

un Calculator, para luego generar las propiedades específicas de él. Además se observan dos

relaciones createIOSpecificationTask, createSequenceFlow. La relación

createIOSpecificationTask es la encargada de definir el mapeo entre los elementos del

metamodelo ESTECO y los elementos del metamodelo BPMN2 relacionados con los datos de

entrada y salida. La relación createSequenceFlow se encargará del proceso de transformación

relacionado a los flujos de ejecución y las tareas, en particular esta relación genera un flujo de

secuencia entre la tarea que se está transformando y la tarea anteriormente transformada.

La cláusula where finaliza con una sentencia de condición la cual chequea el tipo de

tarea. Dependiendo de ésta se chequeará una relación encargada de generar las propiedades

específicas de esa tarea (propertyCalculator).

A continuación se explicarán las relaciones createSequenceFlow y propertyCalculator,

respectivamente, finalizando con la relación createIOSpecificationTask.

Los elementos de un modelo deben estar conectados para seguir la ejecución. Como

los flujos de trabajo de ESTECO pertenecen a un único pool, la conexión entre los elementos

BPMN2 se realiza a través de flujos de secuencia. La relación createSequenceFlow define el

mapeo entre un flujo de ejecución de ESTECO y uno de BPMN2 entre actividades, ya que el

flujo de secuencia entre un evento y una actividad es tratada en la relación que mapea los

eventos de inicio y fin respectivamente. La Figura 5.11 muestra la relación antes mencionada.

Page 100: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

92

Figura 5.11: Relación para transformar un flujo de secuencia

En el dominio marcado como checkonly (modelo origen) se puede observar cómo se

obtiene el identificador de la tarea (id) y a través del atributo endConnector se obtiene un

identificador el cual ayudará para saber desde donde proviene la ejecución. El elemento

processEdge pertenece a la clase TProcessEdge la cual hereda los atributos de la clase TEdge

(ver Figura 5.12), esta clase posee dos atributos: from y to, estos atributos poseen los

identificadores los cuales son el origen y destino de un flujo de ejecución.

Si se observa en la relación de la Figura 5.8 la relación createSequenceFlow posee tres

parámetros, el primero hace referencia al elemento del tipo TGeometry (g), el segundo hace

referencia al identificador de la tarea a la cual se está transformando y el tercero hace

referencia al elemento del tipo Process (p).

En la relación de la Figura 5.11 se observa un dominio primitivo String, éste es

necesario para “capturar” el identificador que aparece como segundo parámetro en la relación

y de este modo, no “perder” el identificador de la tarea que se está transformando.

En el dominio marcado como enforce se puede observar cómo se creará el flujo de

secuencia en el modelo destino. Como se ve en la Figura 5.12 la clase SequenceFlow posee

relation createSequenceFlow{

id_task_node, id_connector:String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = task_node :esteco_m::TTaskNode{

id = id_task_node,

endConnector = end_connector : esteco_m::TEndConnector {

id= id_connector

}

},

processEdge = process_edge : esteco_m::TProcessEdge{}

};

primitive domain id_task:String;

enforce domain target p :bpmn2::Process {

flowElements = task : bpmn2::Task{

id=id_task

},

flowElements = flow1 : bpmn2::SequenceFlow {

sourceRef = task2 : bpmn2::Task {

id= id_task_node

},

targetRef = task

}

};

when {

if (id_connector = process_edge.from and process_edge.to = id_task + '_0' ) then

true else

false

endif;

}

}

Page 101: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

93

dos atributos sourceRef y targetRef, estos atributos contendrán el origen y destino del flujo de

secuencia. De este modo se observa en la relación como se le asigna al atributo sourceRef una

tarea y al atributo targetRef la tarea transformada en la relación antes vista. En la cláusula

when se observa una sentencia condicional la cual controla que las tareas estén conectadas.

ESTECO

BPMN2

Figura 5.12: Elementos de los metamodelos involucrados en la relación createSequenceFlow

De esta manera, se puede observar cómo se construyó una relación la cual transforma

un flujo de ejecución ESTECO a un flujo de secuencia BPMN2 entre tareas.

Como se mencionó anteriormente, la cláusula where de la Figura 5.8 tiene una

condición que controla el tipo de la tarea. Dependiendo de esta condición deberán ser creadas

las propiedades para cada tipo de tarea. La Figura 5.13 muestra la relación propertyCalculator

encargada de crear las propiedades de la tarea Calculator. Esta Figura muestra algunas de las

propiedades. La relación completa puede verse en el Anexo A.

Todos los dominios, a excepción del marcado como enforce, previos a la cláusula

where, son utilizados para mantener datos necesarios para crear las propiedades.

Page 102: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

94

Figura 5.13: Relación para crear propiedades de la tarea Calculator

Por una cuestión de simplicidad se explicarán sólo dos de las propiedades. Las otras

relaciones se encuentran en el Anexo A.

Todas las propiedades de los tipos de las tareas de ESTECO poseen un tipo particular

y valores los cuales, o vienen proporcionados por la configuración a la hora de generar el flujo

de trabajo o son valores asignados por defecto. En la Figura 5.14, se puede observar cómo se

generan dos de las propiedades de Calculator. En cada relación se puede observar como el

segmento que enmarca el dominio enforce agrega una propiedad a la tarea, en este caso

charset y KeepAlive respectivamente. Aquí se puede ver como se agrega el nombre de la

propiedad junto con el tipo al cual hace referencia la misma (itemSubjectRef), en el caso de la

propiedad charset hace referencia a un String, y en el caso KeepAlive hace referencia a un

Boolean. El estándar de BPMN2 no permite asignarles valores a las propiedades, para

soportar esta carencia se utiliza el mecanismo de extensión que éste provee. Para esto es

necesario hacer referencia a la definición de los tipos en el metamodelo ESTECO. Parte de

esta definición es presentada en la Figura 5.15, donde la clase DocumentRoot, posee una

relación de generalización con la clase ExtensionAttributeValue, como se vio anteriormente,

esta clase pertenece a la definición de BPMN2. En las relaciones puede observarse como se

generan los atributos para asignarle el valor a la propiedad a través del atributo value, este

atributo pertenece a la clase TSimpleValue la cual es parte de la clase TDefault que a su vez es

parte de la clase DocumentRoot (ver Figura 5.15).

relation propertyCalculator{

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

primitive domain charset_task:String;

enforce domain target t :bpmn2::Task { };

primitive domain id_task:String;

where {

propertyCharset(g, charset_task, t);

propertyKeepAlive(g,t);

}

}

Page 103: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

95

Figura 5.14: Relaciones para crear la propiedad Charset y KeepAlive

ESTECO

BPMN2

Figura 5.15: Elementos de los metamodelos involucrados en las relaciones propertyCharset y

propertyKeepAlive

relation propertyCharset {

checkonly domain source g : esteco_m::TGeometry{};

primitive domain charset_task:String;

enforce domain target t :bpmn2::Task {

properties = charset : bpmn2::Property {

name = 'charset',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'StringItemDefinition' },

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = 'calculator.charset.' + charset_task }

} }

}

};

}

relation propertyKeepAlive {

checkonly domain source g : esteco_m::TGeometry{};

enforce domain target t :bpmn2::Task {

properties = keepAlive : bpmn2::Property {

name = 'keepAlive',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'BooleanItemDefinition' },

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = 'false' }

} }

}

};

}

Page 104: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

96

De modo similar se generan todas las otras propiedades de Calculator.

De esta manera se mostró como se transforma una tarea de ESTECO a BPMN2, junto

con sus propiedades y el flujo de ejecución entre una tarea y otra.

Para finalizar la transformación de una tarea a otra es necesario definir el mapeo

relacionado con los datos de entrada y salida involucrados en la misma. La Figura 5.8 muestra

la relación createIOSpecificationTask, encargada del mapeo, la cual será ejecutada tras la

aplicación de la relación taskNode2taskBPMN2 al igual que createSequenceFlow.

Las transformaciones de los datos de ESTECO a BPMN2 no son directas. Un dato de

entrada del modelo ESTECO no es solamente un elemento de entrada en el modelo BPMN2,

ya que en BPMN2 los datos de entrada (DataInputs) son capturados en InputSets y ambos son

añadidos en un elemento ioSpecification. Además cabe aclarar que los datos de entrada de

ESTECO poseen valores los cuales o han sido asignados cuando se construyó el flujo de

trabajo o son valores por defecto. Para poder soportar estos valores, es necesario utilizar el

mecanismo de extensión que provee BPMN2.

Los datos de salida se manejan de modo similar que los de entrada, estos

(DataOutputs) son capturados en OutputSets y ambos son añadidos al mismo elemento

ioSpecification que los datos de entrada. En consecuencia, en la transformación es necesario

generar un objeto ioSpecification para agregar los DataInputs, DataOutputs, InputSets y

OutputSets respectivamente. Antes de transformar los datos es necesario generar el elemento

ioSpecification. En la Figura 5.16 puede observarse cómo en el dominio marcado como

enforce se crea este elemento. Luego, en la cláusula where, se realiza la invocación de las

relaciones para transformar los datos de entrada y salida (DataInput, DataOutput) además de

crear los objetos en los cuales estarán contenidos éstos.

Figura 5.16: Relación para crear el elemento ioSpecification

Como se vio en el capítulo 4 un InputSets es una colección de elementos DataInputs

que juntos definen el conjunto válido de datos de entradas asociado a un elemento

ioSpecification. Un ioSpecification debe tener definido al menos un elemento InputSets. Un

relation createIOSpecificationTask {

checkonly domain source g:esteco_m::TGeometry { };

enforce domain target t:bpmn2::Task {

ioSpecification= ioSpecif : bpmn2::InputOutputSpecification {}

};

primitive domain id_task:String;

where {

getDataInputTask(g,ioSpecif, id_task);

createInputSetsTask(ioSpecif,ioSpecif);

getDataOutputTask(g, ioSpecif, id_task);

createOutputSetsTask(ioSpecif, ioSpecif);

}

}

Page 105: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

97

OutputSets es una colección de elementos DataOutputs que juntos pueden producir salidas

desde una actividad. Un elemento ioSpecification debe tener también al menos un elemento

OutputSets [4] (ver Figura 5.17).

Figura 5.17: Elementos del metamodelo BPMN2 involucrados en la transformación de

datos

Para poder crear un objeto de la clase InputSets es necesario obtener los datos de

entrada del modelo ESTECO, para luego generar los DataInputs y añadirlos al objeto

InputSets. La relación utilizada para obtener los datos de entrada del modelo de ESTECO y

generar los DataInputs en BPMN2 es presentada en la Figura 5.18.

Page 106: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

98

Figura 5.18: Relación para transformar los datos de entrada

Cada dato de entrada de ESTECO debe ser transformado en un dato de entrada de

BPMN2. Como se dijo con anterioridad esta transformación no es directa; el código QVT

presentado anteriormente, muestra el procedimiento por el cual el identificador (id), nombre

(name), valor (value) y conectores son obtenidos de la instancia del metamodelo ESTECO

(modelo origen) para ser generados en una instancia del metamodelo BPMN2 (modelo

destino). El nodo dataEdge es el encargado de relacionar el dato (conector de salida del dato)

con la tarea (conector de entrada para el dato). Los conectores outputDataConnector y

bufferInputDataConnector respectivamente asisten al elemento dataEdge para reflejar la

conexión. Cabe aclarar que esta relación sólo transforma los datos que tienen conexión con la

relation getDataInputTask{

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input : esteco_m::TBufferInputDataConnector {}

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data : esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target ioSpecif : bpmn2::InputOutputSpecification {

dataInputs = data_input : bpmn2::DataInput {

id= id_input + '_T' + id_task,

name = name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = value_input

}

}

}

}

};

when {

if (data_edge.from = output_data.id)and (data_edge.to = buffer_input.id ) and (id_task=t.id)

then

true else

false

endif;

}

}

Page 107: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

99

tarea que está siendo transformada. Aquellos datos que no estén conectados con esta tarea son

descartados. De esta manera, cada tarea contendrá sólo los datos involucrados en ella.

La Figura 5.19 muestra los elementos del metamodelo de ESTECO relacionados a los

datos.

Figura 5.19: Elementos del metamodelo ESTECO involucrados en la transformación

de datos

Una vez obtenida toda la información de los datos que provienen del modelo origen,

se comienza con la creación de los datos en el modelo destino. En el dominio marcado con

enforce, de la Figura 5.18, puede observarse como, por un lado se crea el dato de entrada

(dataInput) y con él su identificador (id), nombre (name) y el tipo al cual hará referencia

(itemSubjectRef). Por otro lado, se observa la utilización del mecanismo de extensión de

BPMN2 para soportar la asignación de valores, por defecto o no, de los datos. Para soportar

esta carencia es necesario hacer referencia, una vez más, a la definición de los tipos en el

metamodelo ESTECO como se vio anteriormente en la Figura 5.15, donde la clase

DocumentRoot posee una relación de generalización con la clase ExtensionAttributeValue.

Entonces el valor del dato será guardado en el atributo value el cual es un atributo de la clase

TSimpleValue la cual es parte de la clase TDefault que a su vez es parte de la clase

Page 108: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

100

DocumentRoot. La relación concluye con la cláusula when la cual restringe que la relación

será satisfecha cuando el dato que se está transformando tiene una conexión directa con la

tarea. De esta manera se van transformando cada dato de entrada, es decir que por cada dato

de entrada que posea el modelo origen esta relación se ejecutará.

Una vez generados todos los datos de entrada, la transformación continúa en la

relación createIOSpecificationTask, ver Figura 5.16, donde es invocada la relación

createInputSetsTask, la cual será la encargada de generar el elemento InputSets que contendrá

los datos de entrada generados recientemente. La Figura 5.20 muestra esta relación. Aquí se

puede observar como en el dominio enforce se genera el elemento InputSets y de qué manera

se le añaden los datos de entrada (dataInputs), antes transformados, al atributo dataInputRefs

del metamodelo BPMN2 como se mostró en la Figura 5.17.

Figura 5.20: Relación para generar el elemento InputSets y añadirle los DataInputs

Una vez transformados los datos de entrada y generado el elemento InputSets la

transformación continua transformando los datos de salida, relacionados a esta tarea,

invocando a la relación getDataOutputTask en la relación de la Figura 5.16.

La Figura 5.21 muestra la relación getDataOutputTask, ésta es muy similar a la

relación getDataInputTask. Ambas difieren en los tipos de conectores que aparecen en la

relación y además en que los datos de salida no necesitan utilizar el mecanismo de extensión

de BPMN2.

relation createInputSetsTask {

checkonly domain target ioSpecif: bpmn2::InputOutputSpecification {

};

enforce domain target ioSpecif : bpmn2::InputOutputSpecification {

inputSets = input_set :bpmn2::InputSet{

dataInputRefs= ioSpecif.dataInputs

}

};

}

Page 109: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

101

Figura 5.21: Relación para transformar los datos de salida

Una vez generados los datos de salida, el control regresa a la relación

createIOSpecificationTask para invocar a la relación createOutputSetsTask. Esta relación es la

encargada de generar el elemento OutputSets el cual contendrá los datos recientemente

transformados (ver Figura 5.22).

Figura 5.22: Relación para generar el elemento OutputSets y añadirle los DataOutputs

relation getDataOutputTask{

id_output, name_output : String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output : esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output : esteco_m::TOutputDataNode {

id = id_output,

name = name_output,

inputDataConnector = input_data : esteco_m::TInputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target ioSpecif : bpmn2::InputOutputSpecification {

dataOutputs = data_output : bpmn2::DataOutput {

id= id_output + '_T' + id_task,

name = name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

}

}

};

when {

if (data_edge.from = buffer_output.id) and (data_edge.to = input_data.id ) and (id_task=t.id)

then

true else

false

endif;

}

}

relation createOutputSetsTask{

checkonly domain target ioSpecif: bpmn2::InputOutputSpecification{

};

enforce domain target ioSpecif : bpmn2::InputOutputSpecification{

outputSets = output_set :bpmn2::OutputSet{

dataOutputRefs= ioSpecif.dataOutputs

}

};

}

Page 110: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

102

De esta manera finaliza la transformación relacionada a las tareas junto con los datos

que participan en ella.

El siguiente capítulo muestra la aplicación de la transformación en un caso de estudio

real de la empresa ESTECO.

Page 111: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

103

Capítulo 6

Caso de Estudio

En este capítulo se presenta un ejemplo de una transformación de un flujo de trabajo de

ESTECO a BPMN2. Este flujo ingenieril presenta la optimización de un motor de combustión

interna de cuatro cilindros. Él mismo persigue el objetivo de reducir las emisiones de NOx

(óxido de nitrógeno), manteniendo el consumo de combustible tan bajo como sea posible. La

transformación utilizada ha sido descripta en el capítulo 5.

6.1 Introducción

La empresa ESTECO es pionera en soluciones de optimización numérica. La misma está

especializada en la investigación y desarrollo de software de ingeniería para todas las etapas

del proceso de diseño dirigido por simulación. Además tiene una amplia experiencia en el

ámbito de flujos de trabajo de ingeniería aplicada en el contexto industrial. ESTECO ha

desarrollado su propio modelador y motor de flujo de trabajo llamado modeFRONTIER.

modeFRONTIER [2] es un software de propósito general de integración de procesos y

optimización de diseño. Su plataforma de optimización es multi-disciplinar y multi-objetivo.

A través de algoritmos e integración agiliza el proceso de ingeniería. En numerosas industrias,

modeFRONTIER se ha convertido en una herramienta esencial para mejorar la comprensión

de los factores costo / rendimiento y reducir el tiempo de desarrollo de los productos. La

Figura 6.16 muestra el editor del flujo de trabajo de modeFRONTIER. Todas las categorías de

nodos están en la paleta Nodos y los flujos de trabajo se crean de manera inmediata. El

Registro de Lógica (Logic Log) y el árbol de trabajo (Workflow Tree), que muestra la

estructura, ofrecen a los diseñadores crear un flujo de trabajo intuitivo y personalizado.

6 La Figura es cortesía de ESTECO SpA

Page 112: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

104

Figura 6.1: Entorno modeFRONTIER

6.2 Un caso de estudio

La Figura 6.2 muestra un ejemplo de optimización de un motor de combustión interna de

cuatro cilindros el cual busca reducir las emisiones de NOx (óxidos de nitrógeno)

manteniendo el consumo de combustible tan bajo como sea posible [60]. Estos dos objetivos

están en conflicto, ya que una única solución no puede ser considerada óptima para ambos

objetivos al mismo tiempo.

Figura 6.2: Flujo de trabajo para optimizar un motor de combustión

Page 113: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

105

Los nodos DOE y DOE Sequence representan el nodo de inicio del flujo de trabajo.

Estos dos nodos son inseparables, por lo que están presentes siempre en todo flujo de trabajo,

identificando de manera univoca el punto de inicio de la ejecución. El nodo GTSuite

representa la interacción con el simulador, encargándose de la interacción entre la herramienta

de optimización y el simulador. Este nodo pasa los valores de los parámetros de configuración

(datos de entrada) y guarda los resultados producidos por el simulador en los datos de salida.

En el flujo de trabajo se consideran cuatro variables de entrada: el tiempo de aspiración

(INTCAM), tiempo de descarga (EXHCAM), punto de encendido (TH50) y la longitud del

conducto de aspiración (INTRUNLENGHT), y dos variables de salida que son producidas por

el simulador: el nivel de emisiones de NOx (NOx) y el consumo de combustible (BSFC). El

nodo End representa donde proceso termina.

Como se mencionó en el capítulo 4, un proceso de ESTECO posee una representación

gráfica, pero el modelo de ejecución está representado en formato XML. Sus elementos

fueron descriptos en el mencionado capítulo.

El código completo del ejemplo puede observarse en el Anexo B, y el código generado

tras la aplicación de la transformación puede observarse en el Anexo C. Como se mencionó en

el capítulo anterior la transformación construida en este trabajo se encuentra en el Anexo A.

La Figura 6.3 muestra parte del código del ejemplo, el cual representa el nodo inicio,

la relación aplicada que transforma este nodo en un evento de inicio, y además muestra el

código BPMN2 que ella produjo, luego de haber generado la etiqueta process.

Figura 6.3: Transformación del nodo de inicio

Modelo origen

Modelo destino

relation createSequenceFlowStart2Activity{

e_id :String;

e_name : String;

id_end_connector: String;

checkonly domain source g : esteco_m::TGeometry{

startNode = s:esteco_m::TStartNode {

id = e_id,

name = e_name,

endConnector = e : esteco_m::TEndConnector{

id= id_end_connector

}

}

};

enforce domain target p:bpmn2::Process{

flowElements = f :bpmn2::StartEvent{

id= e_id,

name= e_name

},

};

}

<esteco_m:TGeometry>

<startNode id="_12" name="Start12">

<endConnector id="_12_2"/>

</startNode>

</esteco_m:TGeometry>

<flowElements

xsi:type="bpmn2:StartEvent"

id="_12" name="Start12"/>

Page 114: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

106

En la Figura 6.3 se puede observar que existe una correspondencia entre el dominio

checkonly y los datos del modelo origen. Además se puede observar cómo se genera el

correspondiente código BPMN2 a través del dominio enforce. De manera similar se

transforma el nodo de fin.

Como se mencionó en el capítulo 5, en la relación para transformar las tareas se

pueden distinguir 3 partes. La Figura 6.4 muestra la primera y segunda parte de esta relación.

En ella se puede observar cómo se utilizan las extensiones para soportar especificaciones

propias de ESTECO.

Figura 6.4: Primera parte de la transformación de tareas

La Figura 6.5 muestra una porción de la tercera parte de la relación la cual es la

encargada de obtener el tipo de la tarea para luego generar las propiedades específicas de

ellas. Además, en esta parte se encuentran las invocaciones para generar el objeto

ioSpecification, los DataAssociation y para generar un flujo de secuencia entre tareas en caso

de que existan.

Modelo origen

Modelo destino

relation taskNode2taskBPMN2 {

id_task, name_task, charset_task, type_task,

model_task : String;

valueType:String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t :esteco_m::TTaskNode{

id= id_task,

name= name_task,

charset= charset_task,

type= type_task,

model = model_task

}

};

enforce domain target p:bpmn2::Process {

flowElements = f :bpmn2::Task {

name = name_task,

id = id_task,

extensionValues= extension :

esteco::DocumentRoot {

providerKey = prp :esteco::TRequiredValue{

value = valueType

}

}

}

};

}

<taskNode id="17" name="GTSuite17"

charset="US-ASCII" relative="false"

termination="DOS" timeout="0"

type=

"it.esteco.integration.gtsuite.workflow.GTSuiteNode"

model=

"D:\users\Alberto\GT_POWER_CLUSTERING\... ">

<startConnector id="_17_0"/>

<endConnector id="_17_2"/>

<bufferInputDataConnector id="_17_1"/>

<bufferOutputDataConnector id="_17_3"/>

</taskNode>

<flowElements xsi:type="bpmn2:Task" id="17"

name="GTSuite17" … >

<extensionValues

xsi:type="esteco:DocumentRoot">

<providerKey value="GTSuiteNode"/>

</extensionValues>

Page 115: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

107

Figura 6.5: Segunda parte de la relación que transforma las tareas

La Figura 6.6 muestra la última porción de la tercera parte de esta relación la cual es la

encargada de invocar las relaciones que generan las propiedades específicas de cada tarea, en

este caso se realizará la invocación de la relación propertyGTSuiteNode.

Figura 6.6: Tercera parte de la relación que transforma las tareas

Como puede verse en la Figura 6.7, la relación propertyGTSuiteNode contiene las

invocaciones a las relaciones encargadas de generar cada propiedad.

if (valueType='Calculator')then

propertyCalculator(g, name_task, charset_task, f, id_task)

else

if (valueType='GTSuiteNode')then

propertyGTSuiteNode(g, name_task, charset_task, f, id_task, model_task)

else

propertySimulationX(g, name_task,id_task, f)

endif

endif;

}

where{

valueType = if (type_task =

'it.esteco.integration.calculator.workflow.CalculatorNode') then

'Calculator'

else

if (type_task =

'it.esteco.integration.gtsuite.workflow.GTSuiteNode') then

'GTSuiteNode'

else

'SimulationX'

endif

endif;

createIOSpecificationTask(g, f, id_task);

createDataInputAssociation(g,id_task,f);

createDataOutputAssociation(g,id_task, f);

createSequenceFlow(g,id_task, p);

Page 116: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

108

Figura 6.7: Relación propertyGTSuiteNode

Como se puede notar en la Figura 6.7 una de las propiedades es Model. La generación

de esta propiedad en el modelo destino puede observarse en la Figura 6.8. En ella puede verse,

una vez más, cómo se hace uso del mecanismo de extensión necesario para soportar flujos de

trabajo de ESTECO. De manera similar se generan las propiedades Charset y Timeout.

Figura 6.8: Generación de la propiedad Model

En la Figura 6.7 también se hacen presentes las invocaciones de las relaciones

propertyGTSuiteParameterModelInput y propertyGTSuiteParameterModelOutput. Estas

relaciones hacen referencias a las propiedades ParameterModel que poseen todas las tareas de

ESTECO. Estas propiedades hacen referencia a datos de entrada y salida respectivamente. A

continuación se muestra la Figura 6.9 la cual presenta la propiedad

relation propertyGTSuiteNode{

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

primitive domain charset_task:String;

enforce domain target t :bpmn2::Task { };

primitive domain id_task:String;

primitive domain model_task:String;

where {

propertyCharset(g, charset_task, t);

propertyTimeout(g,t);

propertyModel(g,model_task,t);

propertyGTSuiteParameterModelInput(g,id_task,t);

propertyGTSuiteParameterModelOutput(g,id_task,t);

}

}

Modelo destino

relation propertyModel {

checkonly domain source g :

esteco_m::TGeometry{};

primitive domain model_task:String;

enforce domain target t :bpmn2::Task {

properties = charset : bpmn2::Property {

name = 'model',

itemSubjectRef = item:bpmn2::ItemDefinition{

id = 'StringItemDefinition' },

extensionValues = extension :

esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value :

esteco::TSimpleValue {

value = model_task }

}

}

}

};

}

<properties id="_9RvjuCqbEeOyA8UU1qDtUQ"

name="model"

itemSubjectRef="StringItemDefinition" >

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue

value="D:\users\Alberto\GT_POWER_CLUSTERING\..."/

>

</default>

</extensionValues>

</properties>

Page 117: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

109

propertyGTSuiteParameterModelInput y muestra lo que ella genera. Cabe aclarar que esta

relación debe obtener cada dato de entrada del modelo origen.

Figura 6.9: Generación de la propiedad propertyGTSuiteParameterModelInput

relation propertyGTSuiteParameterModelInput{

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input :

esteco_m::TBufferInputDataConnector {}

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data :

esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tGTSuiteParameterModel' },

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex :

esteco::TComplexValue {

tgSuiteParameterModel = parameterModel :

esteco::TParameterModel {

datatype = 'xsd.double',

name = name_input }

}

},

dataInterfaceRef = dataInter :

esteco::TRequiredValue {

value = id_input + '_T' + id_task }

}

}

};

when { if (data_edge.from = output_data.id) and

(data_edge.to = buffer_input.id ) and

(id_task=t.id) then

true else

false

endif;

}

}

<properties id="_u6h7kCthEeOotIiqjt66Mg"

name="INTCAM"

itemSubjectRef="tGTSuiteParameterModel">

<extensionValues

xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel

datatype="xsd.double"

name="INTCAM"/>

</complexValue>

</default>

<dataInterfaceRef value="_1_T17"/>

</extensionValues>

</properties>

Modelo origen

Modelo destino

<inputDataNode id="_1" name="INTCAM"

type="it.esteco.procint.workflow.InputNode"

expression="" kind="VARIABLE"

value="0.0">

<outputDataConnector id="_1_2"/>

</inputDataNode>

<dataEdge from="_1_2" to="_17_1"/>

Page 118: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

110

De manera similar se genera la propiedad propertyGTSuiteParameterModelOutput,

relacionada a los datos de salida.

A continuación se muestra como se transforman los datos de entrada del caso de

estudio. Para una mejor comprensión se mostrará cómo se transforman los datos de entrada

que participan en una tarea. Se debe recordar que los datos de entrada y salida que participan

en una tarea están contenidos dentro de una etiqueta ioSpecification perteneciente a la tarea.

Además, los datos de entrada y salida que participan en todo el proceso están contenidas en

otra etiqueta ioSpecification contenida dentro de la etiqueta process, ver Anexo C.

La relación encargada de generar el objeto ioSpecification posee las invocaciones para

transformar los datos de entrada y salida. Además, invoca las relaciones para generar los

conjuntos de entradas y conjuntos de salida que contienen ambos datos, ver Anexo A relación

createIOSpecificationTask. La Figura 6.10 muestra la transformación de los datos de entrada,

luego de haber generado el elemento ioSpecification.

Page 119: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

111

Figura 6.10: Transformación de los datos de entrada

En el modelo origen puede observarse que además del código sobre los datos de

Modelo origen

Modelo destino

relation getDataInputTask{

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input :

esteco_m::TBufferInputDataConnector {}

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data :

esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target ioSpecif :

bpmn2::InputOutputSpecification {

dataInputs = data_input : bpmn2::DataInput {

id= id_input + '_T' + id_task,

name = name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue{

value = '0'

}

}

}

}

};

when {

if (data_edge.from = output_data.id)and (data_edge.to =

buffer_input.id ) and (id_task=t.id) then

true else

false

endif;

}

}

<inputDataNode id="_1" name="INTCAM"

type="it.esteco.procint.workflow.InputNode"

expression="" kind="VARIABLE" value="0.0">

<outputDataConnector id="_1_2"/>

</inputDataNode>

<dataEdge from="_1_2" to="_17_1"/>

<ioSpecification

id="_9Q-utSqbEeOyA8UU1qDtUQ">

<dataInputs id="_1_T17"

name="INTCAM"

itemSubjectRef="DoubleItemDefinition" >

<extensionValues

xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="0"/>

</default>

</extensionValues>

</dataInputs>

</ioSpecification>

Page 120: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

112

entrada se encuentra el elemento dataEdge, este elemento asiste en la clausula when para

determinar que el dato que se está transformando participe de la tarea que también está

transformándose. De manera similar se transforman los datos de salida, sólo que ellos no

poseen extensiones. La Figura 6.11 muestra esta transformación.

Figura 6.11: Transformación de los datos de salida

En este capítulo se presentó parte de la aplicación de la transformación, construida en

este trabajo, convirtiendo un flujo de trabajo de la empresa ESTECO modelado con su editor

modeFRONTIER al estándar BPMN2.

Modelo origen

Modelo destino

relation getDataOutputTask{

id_output, name_output : String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output :

esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output:esteco_m::TOutputDataNode{

id = id_output,

name = name_output,

inputDataConnector = input_data :

esteco_m::TInputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target ioSpecif :

bpmn2::InputOutputSpecification{

dataOutputs = data_output : bpmn2::DataOutput {

id= id_output + '_T' + id_task,

name = name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

}

}

};

when {

if (data_edge.from = buffer_output.id) and (data_edge.to=

input_data.id ) and (id_task=t.id) then

true else

false

endif;

}

}

<outputDataNode id="_9" name="NOX"

type="it.esteco.procint.workflow.OutputNode">

<inputDataConnector id="_9_0"/>

<outputDataConnector id="_9_2"/>

</outputDataNode>

<dataEdge from="_17_3" to="_9_0"/>

<ioSpecification

id="_9Q-utSqbEeOyA8UU1qDtUQ">

<dataOutputs id="_9_T17"

name="NOX"

itemSubjectRef="DoubleItemDefinition"/>

</ioSpecification>

Page 121: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

113

Capítulo 7

Conclusiones y Trabajos Futuros

En este capítulo se presentan las conclusiones y contribuciones de este trabajo de tesis.

Además se describen los aspectos que constituyen el punto de partida para el desarrollo de

trabajos futuros.

7.1 Conclusiones

La automatización de procesos de negocio es un componente clave para el crecimiento de las

organizaciones. Existen muchos estándares en el ámbito de procesos de negocio pero no son

directamente aplicables al campo de la ingeniería, ya que éstos poseen requerimientos

específicos. BPMN es el estándar ampliamente utilizado para el modelado de procesos de

negocio y ha sido recientemente mejorado permitiendo extender su metamodelo facilitando su

aplicación a dominios particulares.

Por otra parte, la Arquitectura Dirigida por Modelos [6] [7], implementación de la

OMG para la Ingeniería Dirigida por Modelos [8] [9], propone un proceso de desarrollo de

software en el cual la clave son los modelos y las transformaciones entre ellos. Teniendo en

mente este objetivo, la OMG propone QVT, un lenguaje estándar para expresar consultas y

definir transformaciones de modelos.

Por otro lado, en el contexto de la ingeniería, es habitual requerir la ejecución de

muchas actividades paralelas con interdependencias complejas. Existe un gran número de

formatos gráficos y de ejecución que se encuentran en uso hoy en día. Aunque los flujos de

trabajo científicos o ingenieriles se han utilizado con éxito desde hace muchos años, la

mayoría de las herramientas que se utilizan para definirlos y ejecutarlos no están basados en

tecnologías estándar.

El trabajo desarrollado ha mostrado como es posible modelar un flujo de trabajo

ingenieril con BPMN2, notación para el modelado de procesos de negocio, gracias a su

mecanismo de extensión. Es importante destacar que la utilización de estándares en los

sectores industriales garantiza portabilidad entre las herramientas que soportan el estándar

BPMN2. Además cabe mencionar, que el uso de estándares para flujos de trabajo científicos o

Page 122: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

114

ingenieriles facilita la colaboración entre científicos y diseñadores industriales, mejorando la

interacción entre los diferentes campos. De esta manera se logra proporcionar un vocabulario

común [3], reutilización de modelos que sigan con el estándar e independizar los modelos

construidos de los motores de ejecución.

Para llevar a cabo el objetivo había que considerar que existe una gran cantidad de

flujos de trabajo ingenieriles ya diseñados y utilizados actualmente por la industria y que no

podían descartarse. Con el fin de proporcionar soporte para estos flujos de trabajo se ha

construido una transformación utilizando una tecnología basada en QVT. Esta transformación

permite transformar los flujos de trabajo ingenieriles definidos en el formato propietario de

ESTECO al estándar de procesos de negocio BPMN2.

Las reglas de transformación, especificadas en este trabajo, han sido validadas

experimentalmente aplicándolas a un caso de estudio real industrial de la empresa

especializada en optimización multi-objetivo ESTECO.

Como contribución, se puede mencionar que este enfoque proporcionará un incentivo

adicional para que las empresas abandonen los modeladores propietarios y comiencen a

utilizar tecnologías estándar que vienen de la mano de los procesos de negocio.

Si bien la empresa ESTECO está actualmente trabajando para soportar el estándar, se

ha hecho necesario llevar a cabo una transformación desde el metamodelo de ESTECO al

metamodelo BPMN2. Esta transformación permite la conversión de muchos flujos de trabajo

industriales de ESTECO a BPMN2 consintiendo su ejecución en motores BPMN2, con las

adecuadas extensiones para soportar las propiedades específicas de los flujos de trabajo de

ESTECO.

Otra ventaja que se puede destacar es que es posible reducir la brecha entre la teoría de

la notación de procesos de negocio para los flujos de trabajo y las tecnologías de información

para aplicaciones ingenieriles.

7.2 Trabajos Futuros

Teniendo en cuenta que QVT permite definir transformaciones genéricas las cuales

pueden ser bidireccionales, se espera extender este trabajo realizando una transformación de

BPMN2 a ESTECO logrando así, la ejecución de procesos de negocio en el motor del

modelador modeFRONTIER.

Además se hace posible profundizar la investigación y estudiar la posibilidad de

aplicar el concepto de coreografías del estándar BPMN2 en el ámbito de procesos

industriales.

Estudiar la posibilidad de transformar un modelo BPEL (Business Process Execution

Language) o XPDL y lograr la ejecución en la plataforma de integración modeFRONTIER.

Page 123: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

115

El trabajo realizado deja la puerta abierta para continuarlo y lograr la transformación

de los nodos restantes que posee el modelador modeFRONTIER, tales como: nodos de

conexión, nodos CAD, otros nodos de aplicación, etc., y generar los correspondientes

modelos ingenieriles en BPMN2.

Page 124: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

116

Anexo A

Reglas de Transformación transformation ESTECOToBPMN2(source : esteco_m, target : bpmn2){

key ItemDefinition {id};

key DataInput{id};

key DataOutput{id};

key Task{id};

key EndEvent{id};

top relation GeometryToDefinitions {

checkonly domain source g:esteco_m::TGeometry {};

enforce domain target d: bpmn2::Definitions{

imports = i :bpmn2::Import {

importType = 'http://www.w3.org/2001/XMLSchema',

location = 'calculatorParameterModel.xsd',

namespace = 'http://www.esteco.com'

},

imports = i2 :bpmn2::Import {

importType = 'http://www.w3.org/2001/XMLSchema',

location = 'esteco.xsd',

namespace = 'http://www.esteco.com'

},

rootElements = double : bpmn2::ItemDefinition{

id= 'DoubleItemDefinition',

structureRef = 'xsd:double'

},

rootElements = string : bpmn2::ItemDefinition{

id= 'StringItemDefinition',

structureRef = 'xsd:string'

},

rootElements = anyType : bpmn2::ItemDefinition{

id= 'AnyTypeItemDefinition',

structureRef = 'xsd:any'

},

rootElements = tCalculator : bpmn2::ItemDefinition{

id= 'tCalculatorParameterModel',

structureRef = 'esteco:tCalculatorParameterModel'

},

rootElements = tTGSuite : bpmn2::ItemDefinition{

id= 'tGTSuiteParameterModel',

structureRef = 'esteco:tTGSuiteParameterModel'

},

rootElements = float : bpmn2::ItemDefinition{

id= 'FloatItemDefinition',

structureRef = 'xsd:float'

},

rootElements = doubleArray : bpmn2::ItemDefinition{

Page 125: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

117

id= 'DoubleArrayItemDefinition',

structureRef = 'esteco:array'

},

rootElements = doubleMatrix : bpmn2::ItemDefinition{

id= 'DoubleMatrixItemDefinition',

structureRef = 'esteco:matrix'

},

rootElements = int : bpmn2::ItemDefinition{

id= 'IntItemDefinition',

structureRef = 'xsd:int'

},

rootElements = boolean : bpmn2::ItemDefinition{

id= 'BooleanItemDefinition',

structureRef = 'xsd:boolean'

},

rootElements = anyUri : bpmn2::ItemDefinition{

id= 'AnyURIItemDefinition',

structureRef = 'xsd:anyURI'

}

};

}

top relation createProcess {

checkonly domain source g:esteco_m::TGeometry{ };

enforce domain target d : bpmn2::Definitions{

rootElements = r : bpmn2::Process{

name = 'EstecoMainProcess',

id = 'EstecoMainProcess',

isExecutable = true,

processType = bpmn2::ProcessType::Private

}

};

when {

GeometryToDefinitions(g,d);

}

where {

createSequenceFlowStart2Activity(g, r);

createEndEventSequenceFlowActivity2EndEvent(g,r);

createIOSpecification(g,r);

taskNode2taskBPMN2(g, r);

}

}

relation createSequenceFlowStart2Activity{

e_id :String;

e_name : String;

id_end_connector: String;

checkonly domain source g : esteco_m::TGeometry{

taskNode = task : esteco_m::TTaskNode {

startConnector = start_connector : esteco_m::TStartConnector {}

Page 126: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

118

},

processEdge = process_edge : esteco_m::TProcessEdge {},

startNode = s:esteco_m::TStartNode {

id = e_id,

name = e_name,

endConnector = e : esteco_m::TEndConnector{

id= id_end_connector

}

}

};

enforce domain target p:bpmn2::Process{

flowElements = f :bpmn2::StartEvent{

id= e_id,

name= e_name

},

flowElements = flow : bpmn2::SequenceFlow {

sourceRef = f,

targetRef = task2 : bpmn2::Task {

id = task.id

}

}

};

when {

if (id_end_connector = process_edge.from and start_connector.id = process_edge.to ) then

true

else

false

endif;

}

}

relation createEndEventSequenceFlowActivity2EndEvent {

checkonly domain source g: esteco_m::TGeometry {

exitNode = exit : esteco_m::TExitNode {

startConnector = start_connector : esteco_m::TStartConnector {}

},

taskNode = t : esteco_m::TTaskNode {

endConnector = end_connector : esteco_m::TEndConnector {}

},

processEdge = process_edge : esteco_m::TProcessEdge {}

};

enforce domain target p: bpmn2::Process {

flowElements = f :bpmn2::EndEvent{

id= exit.id,

name = exit.name

},

flowElements = sequence_flow : bpmn2::SequenceFlow{

sourceRef = task : bpmn2::Task{

Page 127: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

119

id= t.id

},

targetRef = end_event : bpmn2::EndEvent{

id= exit.id

}

}

};

when {

if (end_connector.id = process_edge.from and start_connector.id = process_edge.to) then

true

else

false

endif;

}

}

relation createIOSpecification {

checkonly domain source g:esteco_m::TGeometry {};

enforce domain target p:bpmn2::Process {

ioSpecification = ioSpecif : bpmn2::InputOutputSpecification {}

};

where {

inputDataNode2dataInput(g,ioSpecif);

createInputSets(ioSpecif,ioSpecif);

outputDataNode2dataOutput(g,ioSpecif);

createOutputSets(ioSpecif,ioSpecif);

}

}

relation inputDataNode2dataInput{

expression_input, id_input, kind_input, name_input, type_input: String;

id_output_data_connector : String;

value_input:Real;

checkonly domain source g:esteco_m::TGeometry {

inputDataNode = input:esteco_m::TInputDataNode{

expression= expression_input,

id = id_input,

kind = kind_input,

name = name_input,

type = type_input,

value = value_input,

outputDataConnector = output_data : esteco_m::TOutputDataConnector {

id = id_output_data_connector

}

}

};

enforce domain target ioSpecif:bpmn2::InputOutputSpecification {

dataInputs = data_input : bpmn2::DataInput {

Page 128: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

120

id= id_input,

name = name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

}

}

};

}

relation createInputSets{

checkonly domain target ioSpecif: bpmn2::InputOutputSpecification{ };

enforce domain target ioSpecif : bpmn2::InputOutputSpecification{

inputSets = input_set :bpmn2::InputSet{

dataInputRefs= ioSpecif.dataInputs

}

};

}

relation outputDataNode2dataOutput{

id_output, name_output, type_output: String;

id_input_data_connector, id_output_data_connector : String;

checkonly domain source g:esteco_m::TGeometry {

outputDataNode = output: esteco_m::TOutputDataNode{

id = id_output,

name = name_output,

type = type_output,

inputDataConnector= input_data : esteco_m::TInputDataConnector{

id= id_input_data_connector

},

outputDataConnector = output_data : esteco_m::TOutputDataConnector {

id = id_output_data_connector

}

}

};

enforce domain target ioSpecif:bpmn2::InputOutputSpecification {

dataOutputs = data_output : bpmn2::DataOutput {

id= id_output,

name = name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

}

}

};

}

relation createOutputSets{

checkonly domain target ioSpecif: bpmn2::InputOutputSpecification{ };

Page 129: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

121

enforce domain target ioSpecif : bpmn2::InputOutputSpecification{

outputSets = output_set :bpmn2::OutputSet{

dataOutputRefs= ioSpecif.dataOutputs

}

};

}

relation taskNode2taskBPMN2 {

id_task, name_task, charset_task, type_task, model_task : String;

valueType:String;

checkonly domain source g:esteco_m::TGeometry {

taskNode = t :esteco_m::TTaskNode{

id= id_task,

name= name_task,

charset= charset_task,

type= type_task,

model = model_task

}

};

enforce domain target p:bpmn2::Process {

flowElements = f :bpmn2::Task {

name = name_task,

id = id_task,

extensionValues= extension : esteco::DocumentRoot {

providerKey = prp :esteco::TRequiredValue{

value = valueType

}

}

}

};

where{

valueType = if (type_task = 'it.esteco.integration.calculator.workflow.CalculatorNode') then

'Calculator'

else

if (type_task = 'it.esteco.integration.gtsuite.workflow.GTSuiteNode') then

'GTSuiteNode'

else

'SimulationX'

endif

endif;

createIOSpecificationTask(g, f, id_task);

createDataInputAssociation(g,id_task,f);

createDataOutputAssociation(g,id_task, f);

createSequenceFlow(g,id_task, p);

-- si es un Calculator genero las propiedades de Calculator

if (valueType='Calculator')then

Page 130: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

122

propertyCalculator(g, name_task, charset_task, f, id_task)

else

if (valueType='GTSuiteNode')then

propertyGTSuiteNode(g, name_task, charset_task, f, id_task, model_task)

else

propertySimulationX(g, name_task,id_task, f)

endif

endif;

}

}

relation createSequenceFlow{

id_task_node, id_connector:String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = task_node :esteco_m::TTaskNode{

id = id_task_node,

endConnector = end_connector : esteco_m::TEndConnector {

id= id_connector

}

},

processEdge = process_edge : esteco_m::TProcessEdge{}

};

primitive domain id_task:String;

enforce domain target p :bpmn2::Process {

flowElements = task : bpmn2::Task{

id=id_task

},

flowElements = flow1 : bpmn2::SequenceFlow {

sourceRef = task2 : bpmn2::Task {

id= id_task_node

},

targetRef = task

}

};

when {

if (id_connector = process_edge.from and process_edge.to = id_task + '_0' ) then

true

else

false

endif;

}

}

relation createDataInputAssociation{

id_input: String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input_connector : esteco_m::TBufferInputDataConnector {}

},

Page 131: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

123

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

outputDataConnector = output_data_connector : esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task : String;

enforce domain target task : bpmn2::Task {

dataInputAssociations = data_input_association : bpmn2::DataInputAssociation {

sourceRef = data_input : bpmn2::DataInput{

id= id_input

},

targetRef = data_input2 : bpmn2::DataInput{

id= id_input + '_T' + id_task

}

}

};

when {

if (data_edge.from = output_data_connector.id)and (data_edge.to = buffer_input_connector.id )

and (id_task=t.id) then

true

else

false

endif;

}

}

relation createDataOutputAssociation{

id_output, name_output : String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output_connector : esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output : esteco_m::TOutputDataNode {

id = id_output,

name = name_output,

inputDataConnector = input_data_connector : esteco_m::TInputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

dataOutputAssociations = data_output_association : bpmn2::DataOutputAssociation {

sourceRef = data_output : bpmn2::DataOutput {

id = id_output + '_T' + id_task },

targetRef = data_output2 : bpmn2::DataOutput {

id = id_output

}

Page 132: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

124

}

};

when {

if (data_edge.from = buffer_output_connector.id) and (data_edge.to = input_data_connector.id )

and (id_task=t.id) then

true

else

false

endif;

}

}

relation createIOSpecificationTask {

checkonly domain source g:esteco_m::TGeometry {};

enforce domain target t:bpmn2::Task {

ioSpecification = ioSpecif : bpmn2::InputOutputSpecification {}

};

primitive domain id_task:String;

where {

getDataInputTask(g,id_task,ioSpecif);

createInputSetsTask(ioSpecif,ioSpecif);

getDataOutputTask(g,id_task,ioSpecif);

createOutputSetsTask(ioSpecif, ioSpecif);

}

}

relation createInputSetsTask{

checkonly domain target ioSpecif: bpmn2::InputOutputSpecification{ };

enforce domain target ioSpecif : bpmn2::InputOutputSpecification{

inputSets = input_set :bpmn2::InputSet{

dataInputRefs= ioSpecif.dataInputs

}

};

}

relation createOutputSetsTask{

checkonly domain target ioSpecif: bpmn2::InputOutputSpecification{ };

enforce domain target ioSpecif : bpmn2::InputOutputSpecification{

outputSets = output_set :bpmn2::OutputSet{

dataOutputRefs= ioSpecif.dataOutputs

}

};

}

relation getDataInputTask{

Page 133: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

125

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input : esteco_m::TBufferInputDataConnector {}

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data : esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target ioSpecif : bpmn2::InputOutputSpecification {

dataInputs = data_input : bpmn2::DataInput {

id= id_input + '_T' + id_task,

name = name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = '0'

}

}

}

}

};

when {

if (data_edge.from = output_data.id)and (data_edge.to = buffer_input.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

relation getDataOutputTask{

id_output, name_output : String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output : esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output : esteco_m::TOutputDataNode {

Page 134: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

126

id = id_output,

name = name_output,

inputDataConnector = input_data : esteco_m::TInputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target ioSpecif : bpmn2::InputOutputSpecification {

dataOutputs = data_output : bpmn2::DataOutput {

id= id_output + '_T' + id_task,

name = name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id = 'DoubleItemDefinition'

}

}

};

when {

if (data_edge.from = buffer_output.id) and (data_edge.to = input_data.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

relation propertyCalculator{

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

primitive domain charset_task:String;

enforce domain target t :bpmn2::Task { };

primitive domain id_task:String;

where {

propertyCharset(g, charset_task, t);

propertyFormula(g,name_task, t);

propertyTimeout(g,t);

propertyKeepAlive(g,t);

propertyUseGrid(g,t);

propertyVerbose(g,t);

propertyLabel(g,name_task, t);

propertyDescription(g,t);

propertyCalculatorParameterModelInput(g,id_task,t);

propertyCalculatorParameterModelOutput(g,id_task,t);

}

}

--Relaciones Para construir los Parameters Models

relation propertyCalculatorParameterModelOutput{

id_output, name_output : String;

Page 135: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

127

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output : esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output : esteco_m::TOutputDataNode {

id = id_output,

name = name_output,

inputDataConnector = input_data : esteco_m::TInputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tCalculatorParameterModel'

},

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex : esteco::TComplexValue {

calculatorParameterModel = parameterModel : esteco::TParameterModel {

datatype = 'xsd.double',

name = name_output

}

}

},

dataInterfaceRef = dataInter : esteco::TRequiredValue {

value = id_output + '_T' + id_task

}

}

}

};

when {

if (data_edge.from = buffer_output.id) and (data_edge.to = input_data.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

relation propertyCalculatorParameterModelInput{

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input : esteco_m::TBufferInputDataConnector {}

Page 136: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

128

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data : esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tCalculatorParameterModel'

},

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex : esteco::TComplexValue {

calculatorParameterModel = parameterModel : esteco::TParameterModel {

datatype = 'xsd.double',

name = name_input

}

}

},

dataInterfaceRef = dataInter : esteco::TRequiredValue {

value = id_input + '_T' + id_task

}

}

}

};

when {

if (data_edge.from = output_data.id)and (data_edge.to = buffer_input.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

-- Fin Relaciones para Parameter Models del Calculator

relation propertySimulationX{

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

primitive domain id_task:String;

enforce domain target t :bpmn2::Task { };

where {

propertyTimeout(g,t);

propertyKeepAlive(g,t);

Page 137: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

129

propertyUseGrid(g,t);

propertyVerbose(g,t);

propertyLabel(g,name_task, t);

propertyDescription(g,t);

propertySimulationXParameterModelOutput(g,id_task,t);

propertySimulationXParameterModelInput(g,id_task,t);

}

}

relation propertySimulationXParameterModelOutput{

id_output, name_output : String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output : esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output : esteco_m::TOutputDataNode {

id = id_output,

name = name_output,

inputDataConnector = input_data : esteco_m::TInputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tSimulationXParameterModel'

},

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex : esteco::TComplexValue {

simulationXParameterModel = parameterModel : esteco::TParameterModel {

datatype = 'xsd.double',

name = name_output

}

}

},

dataInterfaceRef = dataInter : esteco::TRequiredValue {

value = id_output + '_T' + id_task

}

}

}

};

when {

if (data_edge.from = buffer_output.id) and (data_edge.to = input_data.id ) and (id_task=t.id) then

true

else

false

Page 138: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

130

endif;

}

}

relation propertySimulationXParameterModelInput{

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input : esteco_m::TBufferInputDataConnector {}

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data : esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tSimulationXParameterModel'

},

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex : esteco::TComplexValue {

simulationXParameterModel = parameterModel : esteco::TParameterModel {

datatype = 'xsd.double',

name = name_input

}

}

},

dataInterfaceRef = dataInter : esteco::TRequiredValue {

value = id_input + '_T' + id_task

}

}

}

};

when {

if (data_edge.from = output_data.id)and (data_edge.to = buffer_input.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

Page 139: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

131

relation propertyGTSuiteNode{

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

primitive domain charset_task:String;

enforce domain target t :bpmn2::Task { };

primitive domain id_task:String;

primitive domain model_task:String;

where {

propertyCharset(g, charset_task, t);

propertyTimeout(g,t);

propertyModel(g,model_task,t);

propertyGTSuiteParameterModelInput(g,id_task,t);

propertyGTSuiteParameterModelOutput(g,id_task,t);

}

}

relation propertyModel {

checkonly domain source g : esteco_m::TGeometry{};

primitive domain model_task:String;

enforce domain target t :bpmn2::Task {

properties = charset : bpmn2::Property {

-- el id lo genera solo

name = 'model',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'StringItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = model_task

}

}

}

}

};

}

relation propertyGTSuiteParameterModelOutput{

id_output, name_output : String;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferOutputDataConnector = buffer_output : esteco_m::TBufferOutputDataConnector {}

},

outputDataNode = output : esteco_m::TOutputDataNode {

id = id_output,

name = name_output,

inputDataConnector = input_data : esteco_m::TInputDataConnector{ }

Page 140: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

132

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_output,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tGTSuiteParameterModel'

},

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex : esteco::TComplexValue {

tgSuiteParameterModel = parameterModel : esteco::TParameterModel {

datatype = 'xsd.double',

name = name_output

}

}

},

dataInterfaceRef = dataInter : esteco::TRequiredValue {

value = id_output + '_T' + id_task

}

}

}

};

when {

if (data_edge.from = buffer_output.id) and (data_edge.to = input_data.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

relation propertyGTSuiteParameterModelInput{

id_input, name_input : String;

value_input : Real;

checkonly domain source g:esteco_m::TGeometry{

taskNode = t:esteco_m::TTaskNode{

bufferInputDataConnector = buffer_input : esteco_m::TBufferInputDataConnector {}

},

inputDataNode = input : esteco_m::TInputDataNode {

id = id_input,

name = name_input,

value = value_input,

outputDataConnector = output_data : esteco_m::TOutputDataConnector{ }

},

dataEdge = data_edge : esteco_m::TDataEdge {}

};

primitive domain id_task:String;

Page 141: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

133

enforce domain target task : bpmn2::Task {

properties = parameter : bpmn2::Property {

name= name_input,

itemSubjectRef = item : bpmn2::ItemDefinition {

id= 'tGTSuiteParameterModel'

},

extensionValues = extension:esteco::DocumentRoot{

default = default : esteco::TDefault {

complexValue = complex : esteco::TComplexValue {

tgSuiteParameterModel = parameterModel : esteco::TParameterModel {

datatype = 'xsd.double',

name = name_input

}

}

},

dataInterfaceRef = dataInter : esteco::TRequiredValue {

value = id_input + '_T' + id_task

}

}

}

};

when {

if (data_edge.from = output_data.id)and (data_edge.to = buffer_input.id ) and (id_task=t.id) then

true

else

false

endif;

}

}

relation propertyCharset {

checkonly domain source g : esteco_m::TGeometry{};

primitive domain charset_task:String;

enforce domain target t :bpmn2::Task {

properties = charset : bpmn2::Property {

-- el id lo genera solo

name = 'charset',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'StringItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = 'calculator.charset.' + charset_task

}

}

}

}

};

Page 142: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

134

}

relation propertyFormula {

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

enforce domain target t :bpmn2::Task {

properties = formula : bpmn2::Property {

-- el id lo genera solo

name = 'formula',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'AnyURIItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = name_task + '/javaScript.js'

}

}

}

}

};

}

relation propertyTimeout {

checkonly domain source g : esteco_m::TGeometry{};

enforce domain target t :bpmn2::Task {

properties = timeout : bpmn2::Property {

-- el id lo genera solo

name = 'timeout',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'IntItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = '0'

}

}

}

}

};

}

relation propertyKeepAlive {

checkonly domain source g : esteco_m::TGeometry{};

enforce domain target t :bpmn2::Task {

properties = keepAlive : bpmn2::Property {

-- el id lo genera solo

name = 'keepAlive',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'BooleanItemDefinition'

},

Page 143: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

135

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = 'false'

}

}

}

}

};

}

relation propertyUseGrid {

checkonly domain source g : esteco_m::TGeometry{};

enforce domain target t :bpmn2::Task {

properties = useGrid : bpmn2::Property {

-- el id lo genera solo

name = 'useGrid',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'BooleanItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = 'false'

}

}

}

}

};

}

relation propertyVerbose {

checkonly domain source g : esteco_m::TGeometry{};

enforce domain target t :bpmn2::Task {

properties = verbose : bpmn2::Property {

-- el id lo genera solo

name = 'verbose',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'BooleanItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = 'false'

}

}

}

}

};

}

relation propertyLabel {

Page 144: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

136

checkonly domain source g : esteco_m::TGeometry{};

primitive domain name_task:String;

enforce domain target t :bpmn2::Task {

properties = label : bpmn2::Property {

-- el id lo genera solo

name = 'label',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'StringItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = name_task

}

}

}

}

};

}

relation propertyDescription {

checkonly domain source g : esteco_m::TGeometry{};

enforce domain target t :bpmn2::Task {

properties = description : bpmn2::Property {

-- el id lo genera solo

name = 'description',

itemSubjectRef = item : bpmn2::ItemDefinition{

id = 'StringItemDefinition'

},

extensionValues = extension : esteco::DocumentRoot{

default = default : esteco::TDefault {

simpleValue = simple_value : esteco::TSimpleValue {

value = ''

}

}

}

}

};

}

} --Fin de la transformacion

Page 145: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

137

Anexo B

Código del Caso de Estudio

<?xml version="1.0" encoding="UTF-8"?>

<esteco_m:TGeometry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:esteco_m="http://www.esteco.com" xsi:schemaLocation="http://www.esteco.com

../metamodel/Esteco_M.ecore">

<startNode id="_12" name="Start12">

<endConnector id="_12_2"/>

</startNode>

<exitNode id="_14" name="Exit14">

<startConnector id="_14_0"/>

</exitNode>

<taskNode id="17" name="GTSuite17" charset="US-ASCII" relative="false" termination="DOS" timeout="0"

type="it.esteco.integration.gtsuite.workflow.GTSuiteNode"

model="D:\users\Alberto\GT_POWER_CLUSTERING\cyloptBV70.gtm">

<startConnector id="_17_0"/>

<endConnector id="_17_2"/>

<bufferInputDataConnector id="_17_1"/>

<bufferOutputDataConnector id="_17_3"/>

<inputFileConnector id="_17_1F"/>

<outputFileConnector id="_17_3F"/>

</taskNode>

<inputDataNode id="_1" name="INTCAM" type="it.esteco.procint.workflow.InputNode" expression=""

kind="VARIABLE" value="0.0">

<outputDataConnector id="_1_2"/>

</inputDataNode>

<inputDataNode id="_2" name="EXHCAM" type="it.esteco.procint.workflow.InputNode" expression=""

kind="VARIABLE" value="0.0">

<outputDataConnector id="_2_2"/>

</inputDataNode>

<inputDataNode id="_3" name="INTRUNLENGTH" type="it.esteco.procint.workflow.InputNode"

expression="" kind="VARIABLE" value="0.0">

<outputDataConnector id="_3_2"/>

</inputDataNode>

<inputDataNode id="_4" name="TH50" type="it.esteco.procint.workflow.InputNode" expression=""

kind="VARIABLE" value="0.0">

<outputDataConnector id="_4_2"/>

</inputDataNode>

<outputDataNode id="_8" name="BSFC" type="it.esteco.procint.workflow.OutputNode">

<inputDataConnector id="_8_0"/>

<outputDataConnector id="_8_2"/>

</outputDataNode>

<outputDataNode id="_9" name="NOX" type="it.esteco.procint.workflow.OutputNode">

<inputDataConnector id="_9_0"/>

<outputDataConnector id="_9_2"/>

</outputDataNode>

<dataEdge from="_17_3" to="_8_0"/>

Page 146: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

138

<dataEdge from="_4_2" to="_17_1"/>

<dataEdge from="_1_2" to="_17_1"/>

<dataEdge from="_3_2" to="_17_1"/>

<dataEdge from="_17_3" to="_9_0"/>

<dataEdge from="_2_2" to="_17_1"/>

<processEdge from="_12_2" to="_17_0"/>

<processEdge from="_17_2" to="_14_0"/>

</esteco_m:TGeometry>

Page 147: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

139

Anexo C

Código generado por la transformación del Caso

de Estudio <?xml version="1.0" encoding="UTF-8"?>

<bpmn2:Definitions xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL-XMI"

xmlns:esteco="http://www.esteco.com"

xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL-XMI ../metamodel/BPMN20.ecore

http://www.esteco.com ../metamodel/esteco.ecore" id="_u45j4SthEeOotIiqjt66Mg">

<imports importType="http://www.w3.org/2001/XMLSchema" location="calculatorParameterModel.xsd"

namespace="http://www.esteco.com"/>

<imports importType="http://www.w3.org/2001/XMLSchema" location="esteco.xsd"

namespace="http://www.esteco.com"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="DoubleItemDefinition" structureRef="xsd:double"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="StringItemDefinition" structureRef="xsd:string"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="AnyTypeItemDefinition" structureRef="xsd:any"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="tCalculatorParameterModel"

structureRef="esteco:tCalculatorParameterModel"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="tGTSuiteParameterModel"

structureRef="esteco:tTGSuiteParameterModel"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="FloatItemDefinition" structureRef="xsd:float"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="DoubleArrayItemDefinition"

structureRef="esteco:array"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="DoubleMatrixItemDefinition"

structureRef="esteco:matrix"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="IntItemDefinition" structureRef="xsd:int"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="BooleanItemDefinition" structureRef="xsd:boolean"/>

<rootElements xsi:type="bpmn2:ItemDefinition" id="AnyURIItemDefinition" structureRef="xsd:anyURI"/>

<rootElements xsi:type="bpmn2:Process" id="EstecoMainProcess" name="EstecoMainProcess"

isExecutable="true" processType="Private">

<ioSpecification id="_u5YFACthEeOotIiqjt66Mg">

<dataInputs id="_1" itemSubjectRef="DoubleItemDefinition" name="INTCAM"/>

<dataInputs id="_2" itemSubjectRef="DoubleItemDefinition" name="EXHCAM"/>

<dataInputs id="_3" itemSubjectRef="DoubleItemDefinition" name="INTRUNLENGTH"/>

<dataInputs id="_4" itemSubjectRef="DoubleItemDefinition" name="TH50"/>

<dataOutputs id="_8" itemSubjectRef="DoubleItemDefinition" name="BSFC"/>

<dataOutputs id="_9" itemSubjectRef="DoubleItemDefinition" name="NOX"/>

<inputSets id="_u5eLoythEeOotIiqjt66Mg" dataInputRefs="_1 _2 _3 _4"/>

<outputSets id="_u5kSQithEeOotIiqjt66Mg" dataOutputRefs="_8 _9"/>

</ioSpecification>

<flowElements xsi:type="bpmn2:StartEvent" id="_12" name="Start12"

outgoing="_u5L3withEeOotIiqjt66Mg"/>

<flowElements xsi:type="bpmn2:SequenceFlow" id="_u5L3withEeOotIiqjt66Mg" sourceRef="_12"

targetRef="17"/>

Page 148: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

140

<flowElements xsi:type="bpmn2:EndEvent" id="_14" name="Exit14" incoming="_u5R-

YithEeOotIiqjt66Mg"/>

<flowElements xsi:type="bpmn2:SequenceFlow" id="_u5R-YithEeOotIiqjt66Mg" sourceRef="17"

targetRef="_14"/>

<flowElements xsi:type="bpmn2:Task" id="17" name="GTSuite17" incoming="_u5L3withEeOotIiqjt66Mg"

outgoing="_u5R-YithEeOotIiqjt66Mg">

<extensionValues xsi:type="esteco:DocumentRoot">

<providerKey value="GTSuiteNode"/>

</extensionValues>

<ioSpecification id="_u5kSQythEeOotIiqjt66Mg">

<dataInputs id="_1_T17" itemSubjectRef="DoubleItemDefinition" name="INTCAM">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="0"/>

</default>

</extensionValues>

</dataInputs>

<dataInputs id="_2_T17" itemSubjectRef="DoubleItemDefinition" name="EXHCAM">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="0"/>

</default>

</extensionValues>

</dataInputs>

<dataInputs id="_3_T17" itemSubjectRef="DoubleItemDefinition" name="INTRUNLENGTH">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="0"/>

</default>

</extensionValues>

</dataInputs>

<dataInputs id="_4_T17" itemSubjectRef="DoubleItemDefinition" name="TH50">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="0"/>

</default>

</extensionValues>

</dataInputs>

<dataOutputs id="_8_T17" itemSubjectRef="DoubleItemDefinition" name="BSFC"/>

<dataOutputs id="_9_T17" itemSubjectRef="DoubleItemDefinition" name="NOX"/>

<inputSets id="_u59T0CthEeOotIiqjt66Mg" dataInputRefs="_1_T17 _2_T17 _3_T17 _4_T17"/>

<outputSets id="_u59T0ythEeOotIiqjt66Mg" dataOutputRefs="_8_T17 _9_T17"/>

</ioSpecification>

<properties id="_u6PnsSthEeOotIiqjt66Mg" itemSubjectRef="StringItemDefinition" name="charset">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="calculator.charset.US-ASCII"/>

</default>

</extensionValues>

</properties>

<properties id="_u6PntSthEeOotIiqjt66Mg" itemSubjectRef="IntItemDefinition" name="timeout">

<extensionValues xsi:type="esteco:DocumentRoot">

Page 149: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

141

<default>

<simpleValue value="0"/>

</default>

</extensionValues>

</properties>

<properties id="_u6PnuSthEeOotIiqjt66Mg" itemSubjectRef="StringItemDefinition" name="model">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<simpleValue value="D:\users\Alberto\GT_POWER_CLUSTERING\cyloptBV70.gtm"/>

</default>

</extensionValues>

</properties>

<properties id="_u6h7kCthEeOotIiqjt66Mg" itemSubjectRef="tGTSuiteParameterModel"

name="INTCAM">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel datatype="xsd.double" name="INTCAM"/>

</complexValue>

</default>

<dataInterfaceRef value="_1_T17"/>

</extensionValues>

</properties>

<properties id="_u6oCMCthEeOotIiqjt66Mg" itemSubjectRef="tGTSuiteParameterModel"

name="EXHCAM">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel datatype="xsd.double" name="EXHCAM"/>

</complexValue>

</default>

<dataInterfaceRef value="_2_T17"/>

</extensionValues>

</properties>

<properties id="_u6oCNithEeOotIiqjt66Mg" itemSubjectRef="tGTSuiteParameterModel"

name="INTRUNLENGTH">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel datatype="xsd.double" name="INTRUNLENGTH"/>

</complexValue>

</default>

<dataInterfaceRef value="_3_T17"/>

</extensionValues>

</properties>

<properties id="_u6uI0CthEeOotIiqjt66Mg" itemSubjectRef="tGTSuiteParameterModel" name="TH50">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel datatype="xsd.double" name="TH50"/>

</complexValue>

</default>

Page 150: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

142

<dataInterfaceRef value="_4_T17"/>

</extensionValues>

</properties>

<properties id="_u6uI1ithEeOotIiqjt66Mg" itemSubjectRef="tGTSuiteParameterModel" name="BSFC">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel datatype="xsd.double" name="BSFC"/>

</complexValue>

</default>

<dataInterfaceRef value="_8_T17"/>

</extensionValues>

</properties>

<properties id="_u6uI3CthEeOotIiqjt66Mg" itemSubjectRef="tGTSuiteParameterModel" name="NOX">

<extensionValues xsi:type="esteco:DocumentRoot">

<default>

<complexValue>

<tgSuiteParameterModel datatype="xsd.double" name="NOX"/>

</complexValue>

</default>

<dataInterfaceRef value="_9_T17"/>

</extensionValues>

</properties>

<dataInputAssociations id="_u6DacCthEeOotIiqjt66Mg" sourceRef="_1" targetRef="_1_T17"/>

<dataInputAssociations id="_u6DacSthEeOotIiqjt66Mg" sourceRef="_2" targetRef="_2_T17"/>

<dataInputAssociations id="_u6DacithEeOotIiqjt66Mg" sourceRef="_3" targetRef="_3_T17"/>

<dataInputAssociations id="_u6JhECthEeOotIiqjt66Mg" sourceRef="_4" targetRef="_4_T17"/>

<dataOutputAssociations id="_u6JhESthEeOotIiqjt66Mg" sourceRef="_8_T17" targetRef="_8"/>

<dataOutputAssociations id="_u6PnsCthEeOotIiqjt66Mg" sourceRef="_9_T17" targetRef="_9"/>

</flowElements>

</rootElements>

</bpmn2:Definitions>

Page 151: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

143

Referencias

[1] Cui Lin, Shiyong Lu, Xubo Fei, Artem Chebotko, Darshan Pai et al. “A reference

architecture for scientific workflow management systems and the VIEW SOA solution”.

IEEE Transactions on Service Computing, vol. 2, no. 1, pp. 79-92. 2009.

[2] ESTECO SpA. “modeFRONTIER applications across industrial sectors involving

advanced CAD/CAE packages”. www.esteco.com último acceso 25/10/2013.

[3] Carlo Comin, Luka Onesti, and Carlos Kavka. “Towards a Standard Approach for

Optimization in Science and Engineering”. Proceedings of the 8th International

Conference on Software Engineering and Applications ICSOFT-EA, SciTePress, 2013.

[4] OMG document number: “Business process model and notation”. formal/2011-01-03

http://www.omg.org/spec/BPMN/2.0/ último acceso 26/07/2013.

[5] Business Process Modeling Initiative http://www.bpmi.org/ último acceso 26/07/2013.

[6] Object Management Group, MDA Guide, v1.0.1, http://www.omg.org/cgi-

bin/doc?omg/03-06-01 último acceso 26/07/2013.

[7] Anneke Kleppe, Jos Warmer, Wim Bast. “MDA Explained: The Model Driven

Architecture™: Practice and Promise” Addison-Wesley Longman Publishing Co., Inc.,

Boston, MA, USA, 2003.

[8] T Stahl and M. Völter. “Model-Driven Software Development”. John Wiley & Sons, Ltd.

2006.

[9] Jean-Marie Favre, Jacky Estublier, Mireille Blay. “Beyond MDA : Model Driven

Engineering” (L'Ingénierie Dirigée par les Modèles : au-délà du MDA) Edition Hezmes-

Lavoisier, ISBN 2-7462-1213-7. 2006.

[10] Object Management Group (OMG). “Modeling and metadata specifications”.

http://www.omg.org/spec, último acceso 26/07/2013.

[11] Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos Kavka

"Towards the Standardization of Industrial Scientific and Engineering Workflows with

QVT Transformations”. International Journal On Advances in Software, Soft13v6n12,

2013.

[12] Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos Kavka.

“Data Transformations using QVT between Industrial Workflows and Business Models in

BPMN”. Proceedings of the Seventh International Conference on Software Engineering

Advances ICSEA, IARIA, 2012.

[13] Corina Abdelahad, Daniel Riesco, Carlo Comin, Alessandro Carrara, and Carlos Kavka.

“Hacia una estandarización de workflows científicos e industriales con BPMN2”

Page 152: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

144

Congreso Nacional de Ingeniería Informática /Sistemas de Información CoNaIISI‟2013,

2013.

[14] UML 2.1.2“Infrastructure Specification” www.omg.org/spec/UML/2.4.1/ último acceso

28/07/2013.

[15] OMG document number: “Business process model and notation”. formal/2008-01-17

http://www.omg.org/spec/BPMN/1.1/ último acceso 9/11/2013.

[16] Bertram Ludascher, Ilkay Altintas, Shawn Bowers, Julian Cummings, Terence Critchlow

et al. “Scientific Process Automation and Workflow Management”. in “Scientific Data

Management: Challenges, Technology, and Deployment”. edited by A. Shoshan and D.

Rotem, Chapman and Hall/CDC, 2009.

[17] Ian Taylor, Matthew Shields, Ian Wang, and Andrew Harrison. “The Triana workflow

environment: architecture and applications”. in “Workflows for e-Science: Scientific

Workflows for Grids”. pp 320-339, Springer, 2007.

[18] Pablo Missier, Stian Soiland-Reyes, Stuart Owen, Wei Tan, Alexrandra Nenadic et al.

“Taverna, Reloaded”. Lecture Notes in Computer Science, vol. 6187, pp. 471-481,

Springer, 2010.

[19] Mirko Sonntag, Dimka Karastoyanova, and Ewa Deelman. “Bridging The Gap Between

Business And Scientific Workflows”. Proceedings of the ESCIENCE 2010, 6th IEEE

International Conference on e-Science, IEEE Computer Society, 2010.

[20] Michael Berthold, Nicolas Cebtron, Fabian Dill, Thomas R. Gabriel, Tobias Kotter et al.

“KNIME: The Konstanz Information Miner”. in “Data Analysis, Machine Learning and

Applications”. ed. H. Bock, W. Gaul, M. Vichi, pp. 319-326, Springer, 2008.

[21] Henning Heitkoetter. “Transforming PICTURE to BPMN 2.0 as part of the model-driven

development of electronic government systems”. 44th Hawaii International Conference

on System Sciences (HICSS), pp. 1-10, 2011.

[22] Paolo Bocciarelli and Andrea D'Ambrogio. “A BPMN extension for modeling non

functional properties of business processes”. TMS-DEVS'11 Proceedings of the 2011

Symposium on Theory of Modeling & Simulation: DEVS Integrative M&S Symposium,

Springer-Verlag, pp. 160-168, 2011.

[23] Narayan Debnath, Carlos Alejandro Martinez, Fabio Zorzan, Daniel Riesco, and German

Montejano. “Transformation of business process models BPMN 2.0 into components of

the Java business platform". Industrial Informatics (INDIN), 10th IEEE International

Conference on Digital Objects, pp. 1035-1040, IEEE, 2012.

[24] Nima Hashemian and Samina Sibte Raza Abidi. “Modeling clinical workflows using

business process modeling notation”. Computer-Based Medical Systems (CBMS), 25th

International Symposium on Digital Object, pp. 1-4, IEEE, 2012.

Page 153: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

145

[25] Guillaume Doux, Frédéric Jouault, and Jean Bézivin. “Transforming BPMN process

models to BPEL process definitions with ATL” Fifth International Workshop on Graph-

Based Tools - Grabats 2009 (co-located with TOOLS 2009) Zurich, Switzerland, 2009.

[26] Mauro Argañaraz, Ana Funes, Aristides Dasso. “An MDA Approach to Business Process

Model Transformations” Electronical Journal of Sadio (EJS), 2010.

[27] Behzad Bordbar, Athanasios Staikopoulos. “On behavioural model transformation in Web

services”. 5th International Workshop on Conceptual Modeling Approaches for e-

Business eCOMO'2004, 2004.

[28] Jean Bézivin, Slimane Hammoudi, Denivaldo Lopes, Frédéric Jouault. “Applying MDA

Approach to B2B Applications: A Road Map” Workshop on Model Driven Development

(WMDD 2004) at ECOOP 2004, LNCS, vol. 3344, Springer-Verlag, 2004.

[29] Marcel van Amstel, Steven Bosems, Ivan Kurtev, and Luís Ferreira Pires. “Performance

in model transformations: experiments with ATL and QVT”. Lecture Notes in Computer

Science, Vol. 6707, Theory and Practice of Model Transformations, pp. 198-212,

Springer, 2011.

[30] Ali Fatolahi, Stéphane Somé, and TimothyLethbridge. “Automated generation of abstract

web models using QVT relations”. Technical Report TR-2010-06, School of Information

Technology and Engineering, University of Ottawa, 2010.

[31] Matjaž B. Jurič and Kapil Pant. “Business Process Driven SOA using BPMN and BPEL”.

Editor Packt Publishing Ltd, 2008.

[32] Yolanda Gil, Ewa Deelman, Mark Ellisman, Thomas Fahringer, Geoffrey Fox, Dennis

Gannon, Carole Goble, Miron Livny, Luc Moreau and Jim Myers. “Examining the

challenges of scientific workflows”. vol. 40, no. 12, pp. 24-32, IEEE Computer, 2007.

[33] Rob Allen. “The Workflow Handbook 2001”. Open Image Systems Inc., United Kingdom

Chair, WfMC External Relations Committee; Workflow Management Coalition; 2001.

[34] Li Hongbiao, Li Feng and Yu Wanjun. “The research of scientific workflow engine”.

IEEE International Conference on Software Engineering and Service Sciences (ICSESS),

pp. 412-414, 2010.

[35] Gideon Juve and Ewa Deelman. “Scientific workflows and clouds”. ACM Crossroads

vol. 16,no. 3, pp. 14-18, 2010.

[36] Stephen A. White. “Introduction to BPMN”. Technical Report, IBM Corporation,

www.omg.org/bpmn/Documents/Introduction_to_BPMN.pdf, último acceso 11/10/2013.

[37] Stephen A. White and Derek Miers. “BPMN Modeling and Reference Guide:

Understanding and Using BPMN”. ISBN: 9780977752720, Future Strategies Inc., 2008.

[38] Bruce Silver. “BPMN Method and Style”. 2nd Edition, with Bpmn Implementer's Guide:

Page 154: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

146

A Structured Approach for Business Process Modeling and Implementation Using Bpmn

2.0. ISBN: 9780982368114, publisher: Cody-Cassidy Press, 2011.

[39] D. Hollingsworth. “The Workflow Reference Model”. Version 1.1. Technical Report

WFMC-TC-1003. Workflow Management Coalition, 1995.

[40] B. Kiepuszewski. “Expressiveness and Suitability of Languages for Control Flow

Modelling in Workflows”. PhD thesis. Queensland University of Technology. Australia,

2002.

[41] Bertram Ludäscher, Ilkay Altintas, Chad Berkley, Dan Higgins, Efrat Jaeger, Matthew

Jones, Edwars A. Lee, Jing Taoand and Yang Zhao. “Scientific workflow management

and the Kepler system: Research Articles”. John Wiley and Sons Ltd, Concurr. Comput. :

Pract. Exper., vol. 18, no. 10, ISSN: 1532-0626, pp: 1039-1065, url:

http://dx.doi.org/10.1002/cpe.v18:10, 2006.

[42] Jia Yu and Rajkumar Buyya. “A Taxonomy of Scientific Workflow Systems for Grid

Computing” ACM, SIGMOD Rec., vol. 34, no. 3, ISSN: 0163-5808, url:

http://doi.acm.org/10.1145/1084805.1084814, 2005.

[43] Kheiredine Derouiche and Denis A. Nicole. “Semantically Resolving Type Mismatches in

Scientific Workflows”. ISSNs: 0302-9743, Springer Berlin / Heidelberg, 2007.

[44] E.F. Moore. “Gedanken experiments on sequential machines”. In Automata Studies, pp.

129–153. Princeton University., 1956.

[45] J. Gutierrez, M. Escalona, A. Torres, M. Mejías, J.Torres. “Hacia una propuesta de

Pruebas Tempranas del Sistema” Jornadas de Ingeniería del Software y Bases de Datos

(JISBD), Workshop PRIS 2006.

[46] Roxana Giandini, Claudia Pons, Gabriela Pérez . “A two-level formal semantics for the

QVT language” Memorias de la XII Conferencia Iberoamericana en Software

Engineering (CIbSE). Medellín, Colombia, ISBN: 978-958-44-5028-9, Pag: 73-86, 2009.

[47] UML 2.1.2“Infrastructure Specification” http://www.omg.org/spec/UML/2.2/ 2009

último acceso 15/11/2012.

[48] OMG document number: Formal/2011-01-01 http://www.omg.org/spec/QVT/1.1/ último

acceso 15/10/2013.

[49] MDA http://www.omg.org/mda/ último acceso 15/10/2013.

[50] David S. Frankel. “Model Driven ArchitectureTM

– Applying MDATM

to Esterprise

computing”. ISBN 978-0-471-31920-7. Ed: Wiley Publishing, Inc, 2003.

[51] Jesús Rodríguez Vicente. “Ingeniería de Modelos con MDA: Estudio comparativo de

OptimalJ y ArcStyler”. Departamento de Informática y Sistemas, Universidad de Murcia.

2004.

Page 155: Transformación de Workflows Científicos a Modelos de Negocio … Final.pdf · 2014. 9. 12. · utilización de un estándar permitirá la construcción de modelos unificados y estandarizados

147

[52] An introduction to Model Driven Architecture

http://www.ibm.com/developerworks/rational/library/3100.html último acceso

11/10/2013.

[53] Miller & Mukerji. “Model Driven Architecture (MDA)”. Document number ormsc/2001-

07-01. Architecture Borrad ORMSC, 2001.

[54] MOF: http://www.omg.org/mof/ último acceso 15/10/2013.

[55] J. Bézivin. “MDA: From Hype to Hope, and Reality”. Conferenciante invitado en

UML‟03, 2003.

[56] Stuart Kent. “Model driven engineering. In Integrated Formal Methods”. Third

International Conference, IFM 2002, Turku, Finland, May 15-18, 2002, Proceedings, vol.

2335, Lecture Notes in Computer Science, pp. 286–298. Springer-Verlag, 2002.

[57] MDA Specifications http://www.omg.org/mda/specs.htm último acceso 15/10/2013.

[58] Mens, Tom and Van Gorp, Pieter. “A Taxonomy of Model Transformation”. Electronic

Notes in Theoretical Computer Science (ENTCS) vol. 152, pp. 125-142, 2006.

[59] IKV. The Medini QVT project. http://projects.ikv.de/qvt, último acceso 15/10/2013.

[60] ESTECO SpA, Multiobjective Optimization in Engine Design using Genetic Algorithms

to Improve Engine Performance, ESTECO resource center, http://www.esteco.com.