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 Oracle
Informe de Prctica Profesional de 4to Ao, Ingeniera Informtica
Autor(es): Victor Manuel Martnez Fundora
Tutor(es): Ing. Juan Carlos Gras Gonzlez
Complejo de investigaciones Tecnolgicas integradas (CITI)
Ciudad de La Habana, Cuba Julio, 2012 Resumen Actualmente muchas compaas y organizaciones desarrollan iniciativas para la gestin por procesos en las que utilizan diferentes programas y sistemas informticos. Las herramientas de desarrollo de procesos de negocio (BPMS) producen por lo general descripciones de procesos en una notacin de creacin de modelos estndar, como BPMN o XPDL, en algunos casos las herramientas utilizan formatos de otro tipo para su conveniencia sin tener en cuenta los estndares. Para poner en prctica lo anteriormente mencionado se desarrolla en este trabajo un Componente para la transformacin de modelos de procesos de negocio ,el cual se usara para transformar el XMl generado por los procesos de negocio desarrollados en la BPMS de Oracle JDeveloper, en un meta modelo de clases, que puede ser usado para intercambiar modelos de procesos de negocio entre distintas herramientas, de esta manera tambin se logra la creacin de un componente capaz de transformar al formato usado por Oracle a los xml usados por otras herramientas. Esto se llevar a cabo para poder facilitar el entendimiento entre desarrolladores de procesos de negocio, al borrar la barrera que suponan la diversidad de formatos usados por dichas herramientas.
ndice Introduccin .......................................................................................................................................... 4 Capitulo 1 .............................................................................................................................................. 5 Serializacin de modelos de procesos de negocio .................................................................................. 5 1.1Notacin BPMN ................................................................................................................................... 5 1.2Modelo de Proceso de Negocio en Oracle JDeveloper ........................................................................ 5 1.2.1 Objetos de Flujo (Flow objects) .................................................................................................. 6 1.2.2 Conectores (Connecting Objects) ............................................................................................... 6 1.3 Serializacin XML de modelos de procesos ........................................................................................ 6 1.4 XPdl como estandard ......................................................................................................................... 7 1.5 Herramienta de Modelacin de Procesos de Negocio ........................................................................ 8 Capitulo 2 .............................................................................................................................................. 9 Modelo del Dominio .............................................................................................................................. 9 2.1 Modelo de Entidades .......................................................................................................................... 9 2.2 Futuros modelos DSL .......................................................................................................................... 9 Capitulo 3 ............................................................................................................................................ 10 Solucin Propuesta .............................................................................................................................. 10 3.1 Solucin General .............................................................................................................................. 10 3.2 Diagrama de componentes .............................................................................................................. 11 3.3 Diagrama de paquetes ..................................................................................................................... 11 3.4 Diagrama de clases implementado para la solucin especifica ...................................................... 12 3.4.1 Clases de Mapeo de Atributos Principales del Proceso ............................................................ 12 3.5 Metamodelo General del Transformador ........................................................................................ 16 3.6 Lectura y escritura con LINQ to Xml ................................................................................................. 17 3.6.1 Ejemplo de cdigo en C# sobre la Lectura y Escritura con LINQ to XML .................................. 18 Conclusiones ........................................................................................................................................ 19 Recomendaciones ................................................................................................................................ 19 Bibliografa .......................................................................................................................................... 20 Introduccin
Con el apoyo del Ministerio del Interior (MININT) y el Instituto Superior Politcnico Jos Antonio Echeverra, se ha propiciado la creacin del Complejo de Investigaciones Tecnolgicas Integradas (CITI), el cual se basa en el desarrollo de tecnologas, con el objetivo de lograr un mayor progreso de la investigacin cientfica al servicio de la seguridad y el orden interior del pas; a travs del desempeo de proyectos de diferentes especialidades entre los que se encuentra BPM (Business Process Management) el cual se refiere a las iniciativas corporativas u organizacionales enfocadas al anlisis, mejora, gestin y/o automatizacin de los procesos de negocio, grupo en el cual desempeo las Prcticas Profesionales pertenecientes al curso 2011-2012. Este trabajo va basado en la necesidad de encontrar una forma de convertir del xml generado por la Bpms de Oracle JDeveloper a los formatos de cualquiera de las Bpms usadas en los dems grupos de trabajo del CITI, esto se lograra mediante la integracin de este componente en un transformador de procesos actualmente en desarrollo en nuestro grupo de trabajo. Esto fue logrado mediante la utilizacin del lenguaje de consulta LINQ to Xml (Language INtegrated Query), as como la creacin y utilizacin de un meta modelo de clases para almacenar toda la informacin obtenida del xml generado por el JDeveloper, teniendo como apoyo las herramientas de trabajo Microsoft Visual Estudio, Oracle JDeveloper y XMLNotepad para interpretar el xml del proceso. Las principales tareas desarrolladas para lograr este objetivo fueron el estudio del xml generado por la herramienta, el desarrollo del meta modelo de clases, el mapeo de los distintos elementos del proceso dgase tareas eventos y compuertas hacia el meta modelo, la creacin de un fichero xml nuevo a partir de dicho meta modelo, y el traslado de la informacin del meta modelo especifico al meta modelo general. Todo esto para un mismo fin, el de poder convertir dicho xml a cualquiera de los que utilizan las otras Bpms y propiciar as que se pueda usar cualquier herramienta para modelar el proceso y otra para desplegarlo.
Captulo 1 Serializacin de modelos de procesos de negocio 1.1Notacin BPMN BPMN (Business Process Modeling Notation) 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. Es un estndar para la diagramacin de procesos de negocio que permite unos modelos comprensibles para todos, para los analistas de negocio, quienes crean los modelos iniciales de procesos, para los desarrolladores tcnicos responsables para implementar los sistemas y tecnologas para los procesos, y para los responsables de negocio quienes monitorizarn y gestionarn sus procesos. 1.2Modelo de Proceso de Negocio en Oracle JDeveloper Este es un modelo de procesos desarrollado en la Bpms de Oracle JDeveloper. Se pueden ver los elementos ms importantes de la notacin BPMN, como son las tareas, las compuertas, los eventos y las secuencias. Este es el tipo de diagrama al que se le va a realizar la transformacin.
En el diagrama ejemplo que se llev a cabo se lograron cargar todos los elementos modelados, es decir se lograron identificar la mayora de los componentes de un diagrama BPMN. Los diagramas BPMN, estn formados por una serie de elementos fundamentales.
1.2.1 Objetos de Flujo (Flow objects) BPMN posee un conjunto reducido de elementos de este tipo. El objetivo de que sea un conjunto reducido es que los modeladores no tengan que aprender y memorizar gran cantidad de iconos. Los tres objetos de flujo principales
1.2.2 Conectores (Connecting Objects) Son los elementos que servirn para conectar los diferentes Flow Objects con el objeto de crear el esqueleto estructural bsico de los procesos de negocio.
1.3 Serializacin XML de modelos de procesos
Todas las herramientas de gestin de procesos de negocio (Busines Proces Management Suite) utilizan el formato xml en distintas formas para serializar los diagramas de procesos de negocio, algunas como BizAgi utilizan el estndar definido para esto que es XPDL, otras herramientas no apegadas al estndar utilizan un formato de xml creado por sus desarrolladores, como el Oracle JDeveloper. Gracias a que las herramientas de modelado utilizan esta tcnica fue posible desarrollar este componente para la transformacin de dichos modelos, esto se debe tambin a las ventajas que brinda xml como lenguaje, ya que es de fcil entendimiento y manejo. A continuacin se muestra el xml generado por un proceso de negocio en Oracle JDeveloper. (Se muestra abreviado por razones de espacio)
1.4 XPDL como estndar
XPDL (XML Process Definition Language) es un lenguaje para la definicin de un Flujo de trabajo. Es un formato de archivo basado en XML que puede ser usado para intercambiar modelos de procesos de negocio entre distintas herramientas. Es un formato de archivo que representa el dibujo de la definicin del proceso. Tiene el tamao y las coordenadas X e Y del nodo. Tiene un concepto de lneas que sealan el camino a seguir. Los nodos y las lneas tienen atributos que pueden especificar informacin ejecutable tales como roles, descripcin de actividades, temporizadores, llamadas a web services, etc. XPDL 2.0 contiene extensiones para ser capaz de representar todos los aspectos de BPMN (BP Modelling Notation). 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 otorga garanta de semntica de ejecucin precisa.
1.5 Herramienta de Modelacin de Procesos de Negocio
Esta es la herramienta usada para generar los procesos de negocio a los cuales se le realizara la transformacin. El JDeveloper es un IDE desarrollado por Oracle Corporation. Ofrece caractersticas para el desarrollo en Java, XML, SQL y PL/SQL, HTML, JavaScript, BPEL y PHP. El JDeveloper cubre el todo el ciclo de vida desde desarrollo, diseo, codificacin, debugueo y la optimizacin para ser desplegado.
Con JDeveloper, Oracle ha tenido la intencin de simplificar el desarrollo de aplicaciones centrndose en proveer un enfoque visual y declarativo para el desarrollo de aplicaciones adems es un entorno de codificacin avanzada. Oracle JDeveloper se integra con Oracle Application Development Framework (Oracle ADF), esto simplifica el desarrollo de aplicaciones.
El ncleo IDE contiene una API que otros equipos en Oracle usan para construir extensiones del JDeveloper. BPEL, Portal, BI y otros componentes de la plataforma de Oracle todos montan sus aplicaciones encima del JDeveloper. La misma plataforma IDE tambin sirve como base para SQL Developer, el producto de Oracle para PL/SQL y desarrolladores de bases de datos.
Captulo 2 Modelo del Dominio 2.1 Modelo de Entidades
El diagrama mostrado anteriormente constituye el modelo de clases de dominio, solo contiene las entidades ms importantes del modelo, dgase los principales elementos de un proceso de negocio (proceso, tareas, compuertas, eventos). Este fue creado despus de realizar un estudio del xml generado por la Bpms Jdeveloper de Oracle. Se mapearon a estas clases todos los tags del xml, para as facilitar la transformacin de este hacia los formatos de los xml de procesos de otras Bpms. Estas clases luego de almacenar la informacin del proceso en cuestin, la transferirn a un meta modelo general creado para hacer ms fcil la transformacin hacia otros formatos. 2.2 Futuros modelos DSL Actualmente en nuestro grupo de trabajo el mapeo de los xml generados por los procesos de negocio, implementados en las distintas herramientas que se utilizan se hace a travs de meta modelos de clases especficos para cada uno de los formatos construidos por los desarrolladores. Usando adems para transformar de un tipo de xml a otro un meta modelo general de BPMN. Se desea en el grupo de trabajo implementar una solucin usando la tecnologa DSL (Domain Especific Language) y la herramienta DSL Tools de Microsoft Visual Studio. Con DSL se implementa un meta modelo general llamado Domain Model para a partir de l generar diagramas de procesos de negocio visuales usando una notacin estndar y luego convertirlos a los formatos xml de otras herramientas a travs de plantillas de texto para generar cdigo y as incrementar la productividad. Captulo 3 Solucin Propuesta 3.1 Solucin General
Este componente creado para dar solucin al problema concreto de transformar el xml generado por el proceso de negocio creado en JDeveloper de Oracle, solo constituye una parte de la solucin general que est siendo implementada en nuestro grupo de trabajo. Esta solucin consiste en una aplicacin que transformar todos los formatos de procesos (xml) usados en el grupo dgase XPDL de BizAgi, BPMN de Oracle y Proc de Bonita, de uno a otro segn sea necesario para los desarrolladores a travs de los meta modelos especficos de cada uno de los distintos componentes y pasando por el meta modelo general de la solucin.
3.2 Diagrama de componentes La suma de todas las soluciones desarrolladas para transformar todos los xml de los procesos de negocio generados por las herramientas de nuestro grupo de trabajo se integraran en un solo componente, una DLL o librera de clases.
3.3 Diagrama de paquetes La siguiente imagen muestra el diagrama de paquetes de la solucin general. Consiste en un paquete que contiene las clases de la solucin general (BMPN Transform), una interfaz y la clase que la implementa, donde se encuentran los mtodos de conversin. El paquete general importa los paquetes de las soluciones especficas, los que transforman los xml de cada una de las herramientas dgase Oracle Metamodel y el Xml Metamodel representa las soluciones dadas a otras formatos de XML. El paquete BMPN Metamodel es donde se encuentran las clases del meta modelo general del transformador.
3.4 Diagrama de clases implementado para la solucin especifica
Las siguientes imgenes constituyen partes del diagrama de clases usado para almacenar toda la informacin del xml generado por el proceso, explicadas y distribuidas la funcin que realizan
3.4.1 Clases de Mapeo de Atributos Principales del Proceso 3.4.1.1 Tareas del Proceso
3.4.1.2 Tipos de Eventos y Flechas de Flujo
3.4.1.3 Clase que contiene los mtodos de trabajo sobre el XML
3.4.1.4 Tipos de Compuerta
3.4.1.5 Clases que Contienen los Namespace del Proceso
3.4.1.6 Clases de Datos Auxiliares del Proceso
3.5 Meta modelo General del Transformador
Esta imagen muestra el meta modelo el cual constituir un puente entre los meta modelos especficos de los distintos componentes de transformacin. Este es el meta modelo general de la solucin, es un diagrama de clases que describe las partes ms importantes de la notacin BPMN.
3.6 Lectura y escritura con LINQ to Xml
LINQ to XML es una interfaz de programacin XML en memoria y habilitada para LINQ que permite trabajar con XML desde los lenguajes de programacin de .NET Framework. Para el desarrollador medio que slo desea completar una tarea, LINQ to XML simplifica el cdigo XML al proporcionar una experiencia de consulta similar a SQL. Con un poco de estudio, los programadores pueden aprender a escribir consultas sucintas y eficaces en el lenguaje de programacin que prefieran. Los desarrolladores profesionales pueden usar LINQ to XML para aumentar considerablemente su productividad. Con LINQ to XML, pueden escribir menos cdigo, que a su vez resulte ms expresivo, compacto y eficaz. Pueden usar expresiones de consulta de distintos dominios de datos simultneamente. LINQ to XML se parece al Modelo de objetos de documento (DOM) en lo que respecta a la insercin del documento XML en la memoria. Puede consultar y modificar el documento; una vez modificado, puede guardarlo en un archivo o serializarlo y enviarlo a travs de Internet. Sin embargo, LINQ to XML es diferente de DOM: proporciona un nuevo modelo de objetos ms ligero con el que se trabaja ms fcilmente y que aprovecha las mejoras de lenguaje de Visual C# 2010. La ventaja ms importante de LINQ to XML radica en su integracin con Language- Integrated Query (LINQ). Esta integracin permite escribir consultas en el documento XML en memoria para recuperar colecciones de elementos y atributos. La capacidad de consulta de LINQ to XML es comparable en cuanto a funcionalidad (aunque no cuanto a sintaxis) a XPath y XQuery. La integracin de LINQ en Visual C# 2010 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 de manera rpida y fcil teniendo conocimiento del formato del XML que se desea construir.
3.6.1 Ejemplo de cdigo en C# sobre la Lectura y Escritura con LINQ to XML Lectura
Escritura
Conclusiones
Se realiz un estudio investigativo en la gestin de procesos de negocio, profundizando en el concepto de procesos del negocio, en la modelacin de los mismos, en estndares de BPM (BPMN, XPDL), en la serializacin de los procesos usando xml y en las herramientas para la Gestin de Procesos de Negocio, en particular el JDeveloper de Oracle. Adems de estudiar las tecnologas y herramientas empleadas como: VisualStudio 2010, Lenguaje de programacin C# y LINQ to XML. Se document y analiz las clases del dominio desarrolladas as como las clases implementadas para la solucin general a la que se integrar el componente, con el fin de arribar al artefacto fundamental del proceso que es el Diagrama del Modelo de Dominio o Meta modelo especfico para la transformacin de los procesos con el formato de Oracle y con ello el cumplimiento del objetivo principal planteado, desarrollar un componente para la transformacin de modelos del negocio.
Recomendaciones Se recomienda que se contine con el perfeccionamiento del componente ya que quedaron algunos elementos ms complejos del proceso por mapear, para los cuales se desarrollar una versin posterior del componente, pues estos son necesarios para el mapeo de procesos de negocio de mayor nivel de complejidad. Se recomienda tambin migrar la solucin general del transformador hacia la tecnologa DSL porque as se ganar en productividad a la hora de mapear procesos de negocio.
Bibliografa
Notaciones y lenguajes de procesos. Una visin global, Autor: Juan Diego Prez, 25179398X., correo: e-mail-jdperez.averroes@juntadeandalucia.es Qu es BPM? BPM Business Process Management Gestin de Procesos de Negocio Apuntes BPM Club-BPM 2009 Club-BPM. Todos los derechos reservados. Est prohibida la reproduccin y distribucin de esta publicacin en cualquier formato sin consentimiento escrito por, Centro de Encuentro, Fecha Publicacin: 3 de Noviembre 2009, ID: 2009/01 Gestin de procesos de negocio BPM (Business Process Management), TICs y crecimiento empresarial Qu es BPM y cmo se articula con el crecimiento empresarial?, Autor: Flor Nancy Daz Piraquive*, Recibido: septiembre de 2008. Aprobado: octubre de 2008 A FOND0 C#, Editor: Carmelo Sinchez Gonzitlez, Preimpresidn: Marash, S. A., Impreso en Fareso, S. A Andrew Troelsen. Pro C# 2010 and the .NET 4 Platform, Fifth Edition. 2010. Scott Klein. Professional LINQ. 2008