Instituto Superior Politcnico Jos Antonio Echeverra
Facultad de Ingeniera Informtica
COMPONENTE PARA LA TRANSFORMACIN A ESTNDARES DE MODELOS DE PROCESOS DE NEGOCIO. MODELOS DE LA BPMS BONITA
Informe de Prctica Profesional de 4to Ao, Ingeniera Informtica
Autor: Arturo Gonzlez Prez.
Tutor: Juan Carlos Grass Gonzlez CITI jgrass@udio.cujae.edu.cu
Ciudad de La Habana, Cuba Julio, 2012
Resumen El presente trabajo aborda el tema de la transformacin de modelos de procesos de negocio, teniendo como objetivo principal reutilizar un modelo de procesos hecho en Bonita Open Solution 5.6.1 a otra herramienta de modelado de procesos de negocio. Para ello se desarrolla un componente que permite cargar y salvar el fichero XML generado por la herramienta de modelado Bonita OS a un metamodelo de clases. Luego de ser cargado, el fichero se transforma al metamodelo BPMNMetamodel creado para estandarizar todos los metamodelos especficos originados para cada herramienta y realizar la transformacin en ambos sentidos. Esta transformacin es de gran importancia porque al final permite reutilizar y compartir los modelos de procesos de negocio entre distintas herramientas de modelacin. El trabajo fue desarrollado en Visual Studio 2010, la nueva versin del entorno de desarrollo integrado para la plataforma .NET.
ndice Introduccin .....................................................................................................................................................1 Captulo 1 . Serializacin de modelos de procesos de negocios ......................................................2 1.1 Notacin BPMN ........................................................................................................................................2 1.2 Serializacin XML de modelos de procesos .............................................................................................3 1.3 XPDL como estndar ................................................................................................................................3 Captulo 2 . Modelo del Dominio ...............................................................................................................4 2.1 Modelo de entidades ..................................................................................................................................4 2.2 Descripcin de las entidades del modelo del dominio ..............................................................................5 2.3 Transformacin de modelos con DSL .......................................................................................................6 Captulo 3 . Solucin Propuesta .................................................................................................................7 3.1 Solucin General .......................................................................................................................................7 3.2 Diagrama de componentes ........................................................................................................................8 3.3 Diagrama de paquetes de diseo ...............................................................................................................8 3.4 Modelo de clases de diseo .......................................................................................................................9 3.5 Modelo de clases de diseo general (Metamodelo general) ....................................................................11 3.6 Lectura y escritura con LINQ to XML ....................................................................................................12 Conclusiones .................................................................................................................................................14 Recomendaciones ........................................................................................................................................14 Referencias bibliogrficas .........................................................................................................................15
1
Introduccin El trabajo presentado se desarroll en el Complejo de Investigaciones Tecnolgicas Integradas (CITI). Se encuentra insertado dentro del rea del Instituto Superior Politcnico Jos Antonio Echeverra (CUJAE). Su misin est encaminada a desarrollar, como su nombre lo indica, tecnologas integradas en varias esferas de las ciencias tcnicas, que contribuyan a la seguridad y el orden interior, contando con la colaboracin de varias entidades principalmente de la CUJAE y el MININT. La tarea abordada en este trabajo consiste en lograr una transformacin de modelos de procesos de negocio, teniendo como objetivo principal el poder reutilizar un modelo de procesos hecho en Bonita OS a otra herramienta de modelado. La solucin est concebida en un componente que permite cargar y salvar el fichero XML generado por la herramienta de modelado a un metamodelo de clases. Luego de ser cargado, este se transforma al metamodelo BPMNMetamodel, el cual contiene implementada la solucin para transformar del modelo general de BPMN a los ms especficos de las distintas herramientas. En este caso se trabaj especficamente con el fichero generado por la herramienta Bonita OS. La solucin planteada resuelve la problemtica de las herramientas de modelado referente a que usan diferentes maneras de serializar los ficheros XML para almacenar los modelos y por ello no se pueden reutilizar entre ellas. Como elementos importantes se describen el Modelo del Dominio, que se utiliza cuando se pretende disear un sistema que no automatiza ningn proceso, es decir, no tiene un negocio como tal asociado sino que es un sistema que servir para una herramienta en particular, para con ello resolver problemticas de este tipo y los diferentes diagramas que argumentan la solucin como el diagrama de componentes y el diagrama de paquetes.
2
Captulo 1 . Serializacin de modelos de procesos de negocios 1.1 Notacin BPMN Business Process Modeling Notation (BPMN) es una notacin grfica que describe la lgica de los pasos de un proceso de Negocio. Esta notacin ha sido especialmente diseada para coordinar la secuencia de los procesos y los mensajes que fluyen entre los participantes de las diferentes actividades que en l se realizan. Proporciona un lenguaje comn para que los procesos se puedan comunicar de forma clara, completa y eficiente. El proceso de negocio (su modelo BPM), se compone principalmente de [1]: Actividades: son las tareas que debe hacer una persona (tarea interactiva, tarea humana), o debe hacer un sistema (servicio, o tarea de sistema) dentro del proceso de negocio. Objeto de Negocio: es la informacin o documento que fluye a travs del proceso de negocio, por ejemplo la Solicitud de Crdito, o el Crdito de Consumo (en que se transforma la solicitud), o la Ficha del Cliente. Flujos (flechas): es la secuencia que se define entre las actividades. Decisiones: criterios para tomar distintas opciones en el procesos, distintas direcciones en el flujo. Subproceso: otro proceso interno.
Ilustracin 1.Modelo simple acerca de la realizacin de un trmite.
3
1.2 Serializacin XML de modelos de procesos
La serializacin es el proceso de convertir un objeto a un formulario que pueda transportarse fcilmente. El otro fin para el cual sirve es que la deserializacin reconstruye el objeto desde la secuencia. [2] En la actualidad el funcionamiento de las BPMS son muy similares, ya que estn basadas en el uso de BPMN para la modelacin de un proceso y el uso de ficheros XML para almacenar dicha informacin. A diferencia del uso de la notacin BPMN para la modelacin, por otra parte existen diferencias en las estructuras de los ficheros XML a la hora de definir las etiquetas y elementos que conforman el mismo, ya que casi todas estas herramientas tienen su definicin propia. En este caso en particular Bonita OS usa un fichero XML con extensin .proc, el cual es muy diferente al usado por ejemplo por Oracle BPMS con extensin .bpmn.
1.3 XPDL como estndar XPDL (XML Process Definition Language) es un lenguaje definido por la Workflow Management Coalition (WfMC) con el objetivo de soportar la importacin/exportacin de los Modelos de Procesos entre aplicaciones diferentes, ya sean modeladores o entornos de ejecucin. Esta estandarizacin es posible gracias a que el archivo XPDL es una representacin exacta del modelo realizado en BPMN.
El objetivo de XPDL es almacenar e intercambiar el diagrama de procesos. Permite que una herramienta de diseo de procesos escriba un diagrama y otra lo lea, y la imagen resultante sea lo ms parecidas posibles. Sin embargo, no da la garanta de que su resultado sea muy preciso. [3]
4
Captulo 2 . Modelo del Dominio 2.1 Modelo de entidades El siguiente modelo del dominio representa un conjunto de entidades creadas para representar los tags ms importantes que genera el XML de la BPMS Bonita OS. Cada clase contiene todos los campos o atributos de cada tag del fichero asociado con la informacin correspondiente, en dependencia de su uso en la modelacin. Este diagrama representa la informacin ms valiosa del fichero, es decir en general el diagrama cuenta con muchas ms clases pero solo estas son las de mayor relevancia, por lo cual son las nicas que se ven representadas y por lo tanto las que a continuacin se explican detalladamente.
Ilustracin 2.Modelo de entidades. 5
2.2 Descripcin de las entidades del modelo del dominio En este diagrama se representaron los tags ms significativos del fichero XML y se obtuvieron los valores de todos los atributos de cada uno de ellos, pero existen algunos de los cuales no se pudo saber su significado ni el porqu de estar incluidos en el fichero, aunque la mayora de dicha informacin no es de importancia para tener en cuenta a la hora de crear el modelo grfico, por lo cual los mismos no se describirn.
Elements: esta entidad es muy general, ya que en ella se modelan todos los objetos que pueden constituir a un modelo de proceso, es decir un tag elements puede hacer funcin de Pool, Lane, Event, Task o Gateway. Para su distincin cuenta con un atributo type el cual especfica el tipo de elemento que es.
Xmi_XMI: esta entidad representa al tag del XML que es la raz del mismo (Root). Todos sus atributos hacen referencia a los namespaces usados por la BPMS Bonita OS para organizar el fichero. Dentro tambin incluye dos instancias de entidades: Process_MainProcess y Notation_Diagram, las cuales son descritas a continuacin.
Process_MainProcess: en esta entidad como datos importantes se especifica el nombre general que tiene el proceso y la versin de la BPMS Bonita con la cual se model el proceso. Adems tiene tantas instancias de la entidad elements como Pool tenga el proceso (aclarar que esta herramienta permite modelar ms de un Pool).
Connections: esta entidad se encuentra siempre dentro de la instancia elements que representa al Pool modelado. Casi siempre se encuentra como parte la lista de conexiones que tiene el Pool que unen a los elementos que lo conforman. El atributo id hace referencia al atributo incoming o outgoin de un elements, es decir al arco de entrada o salida del elemento.
6
Children: esta entidad es muy similar a la entidad Elements, ya que es muy genrica. Aqu tambin se puede modelar cualquier tipo de elemento que conforma un modelo, pero est ms orientada a las propiedades visuales de los elementos del modelo, por ello sus instancias estn contenidas en la entidad que conforma la notacin del diagrama (Notation_Diagram). El atributo element hace referencia al id del elemento del cual contiene las caractersticas grficas o visuales. Contiene otro atributo type, en caso de modelar un Pool, Lane o un textAnnotationAttachment es de tipo Node, de ser una compuerta, tarea o evento es de tipo Shape (figura). Contiene una instancia de LayoutConstraint.
LayoutConstraint: esta entidad contiene los atributos principales de la representacin grfica, que son las coordenadas X y Y, y los atributos width (ancho) y height (altura).
Edges: modela los arcos que grafican las conexiones entre los elementos del diagrama. El atributo element hace referencia al id de Connections que une a dos elementos del proceso. El atributo source y target hacen referencia a los id de las instancias de Children que hacen referencia a los elementos contenidos en un Lane. Contiene instancias de Children pero de tipo DecorationNode, es decir sin relacin con los de tipo Node y Shape. Contiene una instancia de BendPoints.
BendPoints: su principal atributo es points, el cual representa la trayectoria del arco (Edges).
Notation_Diagram: contiene instancias de Children as como cantidad de Pool que contenga el proceso modelado. Adems posee una lista de Edges.
2.3 Transformacin de modelos con DSL Este mismo modelo de entidades antes visto, para futuras iteraciones y mejoras al transformador se debe automatizar mediante un DSL (Domain Specific Language) 1 , es decir que dado el fichero XML generado por la herramienta de modelado, automticamente este genere el modelo de clases correspondientes al mismo.
1 DSL: Un lenguaje de dominio especfico o DSL es un lenguaje a medida que se dirige a un tipo de problema especfico lo describe y valida en trminos nativos del dominio especifico. [4] 7
Captulo 3 . Solucin Propuesta 3.1 Solucin General
Luego de analizar la problemtica descrita con anterioridad, se determin la solucin descrita a continuacin. Cada metamodelo especfico cargar y salvar los ficheros generados por las herramientas de modelado con que se trabaje a las clases del metamodelo (en este caso Bonita OS). Luego de haber cargado, se transformar al metamodelo BPMN, es decir traducir toda la informacin especfica a la ms general, para con ello poder realizar el proceso inverso y lograr el objetivo de poder reutilizar un diagrama de proceso de una herramienta a otra. La figura a continuacin muestra lo antes expuesto.
Ilustracin 3.Solucin general para la integracin a travs de metamodelos.
8
3.2 Diagrama de componentes
Este diagrama est compuesto por un solo componente que es el contenedor de los elementos que conforman el diagrama de paquetes. Toda la implementacin y modelacin realizada al final forma parte de una biblioteca de clases dinmica (dll, extensin y siglas en ingls) que contiene todo el tratamiento a realizar para la transformacin.
Ilustracin 4.Componente final del transformador.
3.3 Diagrama de paquetes de diseo
Este diagrama se compone por diferentes paquetes con distintas funcionalidades. BPMNTransform contiene la interfaz ITransform la cual a su vez contiene los mtodos que son implementados por la clase Transform, donde se realiza el proceso de cargar y salvar del fichero XML al metamodelo especfico y viceversa. Este metamodelo especfico es el que se encuentra englobado en el paquete BonitaMetamodel, donde se encuentra toda la modelacin en un diagrama de clases segn la estructuracin del fichero generado por la herramienta Bonita OS. En el paquete BPMNMetamodel se encuentra otra modelacin en un diagrama de clases pero es el que representa de manera general la modelacin BPMN y es el usado para la transformacin hacia los metamodelos especficos de otras herramientas de modelado como un estndar ms generalizado entre todos. Por ltimo el paquete XMLMetamodel queda abierto por si en el futuro resulta de inters incluir nuevos formatos de otras herramientas en las transformaciones de modelados de procesos.
9
Ilustracin 5.Paquetes que conforman el componente.
3.4 Modelo de clases de diseo Este modelo es similar al expuesto como modelo del dominio en el captulo 2 pero con otras clases incluidas que no representan informacin valiosa para el trabajo a realizar en el transformador. Las clases nuevas incluidas son: Groups, Datatypes, IncludedEntries, ResourceFolders, ErrorTemplate, ProcessTemplate, PageTemplate, ConsultationTemplate, TextAnnotationAttachment, Parameters, Connectors, Data, DecisionTable, Styles, SourceAnchor, TargetAnchor.
De gran importancia se encuentra la clase BonitaModelFile, la cual contiene la implementacin del cdigo para cargar y salvar del fichero XML al metamodelo BonitaMetamodel.
10
Ilustracin 6.Modelo de clases general creado para la solucin.
11
3.5 Modelo de clases de diseo general (Metamodelo general) Este es el metamodelo presentado en el paquete BPMNMetamodel, el cual contiene las principales clases necesarias para modelar un proceso de negocio de cualquier herramienta de modelado, como son los Pool, Lane, Event, Task, Gateway, Subprocess, Arrowflow, Coordinate adems de incluir de cada una, su principal y ms valiosa informacin para que al transformar hacia otro metamodelo este no sufra cambios en la modelacin grafica o los menos posibles.
Ilustracin 7.Modelo de clases del metamodelo BPMN.
12
3.6 Lectura y escritura con LINQ to XML LINQ to XML es una interfaz de programacin XML en memoria y habilitada para Language- Integrated Query (LINQ) que permite trabajar con XML desde los lenguajes de programacin de .NET Framework. La ventaja ms importante de LINQ to XML radica en su integracin con LINQ. Esta integracin permite escribir consultas en el documento XML en memoria para recuperar colecciones de elementos y atributos. La integracin de LINQ proporciona una escritura ms rpida, comprobacin en tiempo de compilacin y una compatibilidad mejorada con el depurador. Otra ventaja de LINQ to XML es la capacidad de usar los resultados de la consulta como parmetros en constructores de objetos XElement y XAttribute, que habilita un mtodo eficaz para crear rboles XML. Este mtodo, denominado construccin funcional, permite que los desarrolladores transformen fcilmente rboles XML de una forma a otra. [5] Lectura
Dada la ubicacin especificada (from), se hace una consulta donde cumpla con una condicin (where) y se toma el valor del atributo (select) para despus asignrselo a la variable name.
Escritura
Similar a la sentencia anterior pero con la diferencia de la creacin de nuevos elementos y atributos para la asignacin al nuevo fichero XML.
13
A continuacin se muestra un fragmento de un XML generado por Bonita.
Ilustracin 8.Fragmento del fichero XML generado por la herramienta Bonita OS.
14
Conclusiones Durante el tiempo de prctica profesionales se realiz un estudio investigativo en la gestin de procesos de negocio, profundizando en las herramientas para la modelacin de procesos de negocio. Se analiz detalladamente la estructura del fichero XML con extensin .proc generado por la herramienta Bonita OS, con la ayuda de herramientas como XML Notepad y Notepad++. Adems de estudiar las tecnologas y herramientas empleadas como: Visual Studio 2010, lenguaje de programacin C# y LINQ to XML. Se document y dise las clases necesarias para leer y escribir documentos XML segn la estructura de Bonita OS y se cumpli el objetivo principal planteado: desarrollar un componente para la transformacin de modelos de negocio.
Recomendaciones Recomendamos el constante perfeccionamiento del componente ya que quedaron algunos elementos por identificar en el fichero, los cuales no son imprescindibles para el desarrollo del trabajo final deseado, pero si para garantizar que el modelo quede lo ms parecido al original cuando se transforme.
15
Referencias bibliogrficas [1] Roln, Elvira; Ferreira, Mateus. Marco de Trabajo para la Gestin en el Modelado de Procesos de Negocio. Universidad Autnoma de Tamaulipas-FIANS. Noviembre de 2005
[4] Bzivin, 2005, Jean Bzivin, Guillaume Hillairet, Frdric Jouault, Ivan Kurtev, William Piers. Bridging the MS/DSL Tools and the Eclipse Modeling Framework. University of Nantes, 2005.
[5] 2010, Informacin general acerca de LINQ to XML.htm