Lic. José Martinez Garro 2, Mg. Patricia Bazán1 1 LINTI (Laboratorio de Investigación en Nuevas Tecnologías Informáticas) - Facultad de Informática – UNLP 2 Facultad de Informática – UNLP - Argentina
físicamente implementado. Por lo tanto, tener la
capacidad de visualizar y evaluar un cambio en Resumen - La gestión de los procesos de los procesos antes de su implementación puede negocio o BPM (Business Process Management) es tener un impacto positivo sobre la tasa de éxito una metodología empresarial que permite de los futuros cambios. Una forma de lograr representar las actividades de los procesos de esto es utilizar modelado dinámico de procesos negocios y las restricciones que se aplican sobre de negocios [2] ellas. Automatizar esta tarea conlleva el beneficio de contar con un soporte que modela, simula y Se llama Business Process Management monitorea las actividades de dichos procesos de (BPM) a la metodología empresarial cuyo negocio. objetivo es mejorar la eficiencia a través de la Actualmente, uno de los intereses fundamentales gestión sistemática de los procesos de negocio en esta metodología radica en el hecho de que se deben modelar, automatizar, integrar, desarrollar aplicaciones reales orientadas a monitorear y optimizar de forma continua. [3] usuarios finales que se valgan del paradigma de BPMS (BPM Suite) es el conjunto de procesos. En un esquema de integración con servicios y herramientas informáticas que recursos existentes y en pos de agilizar los tiempos facilitan la administración de procesos de de desarrollo proponemos en el siguiente trabajo una metodología para la integración de procesos negocio. en una arquitectura MVC, donde los procesos se Existen distintos patrones de diseño que integran con las aplicaciones existentes permiten configurar modelos de aplicaciones. cumpliendo el rol de modelo de negocio. En particular, han tenido bastante auge en la actualidad aquellos patrones que responden a Temas clave: Proceso, MVC, modelo de metodologías orientadas a servicios. Estos proceso, servicio, metodología, BPM. patrones suelen implementar el patrón de diseño MVC (Model View Controller). Este trabajo plantea una metodología de I. INTRODUCCIÓN trabajo para integrar procesos de negocio con U n proceso de negocio es una actividad del mundo empresarial que consta de un conjunto de tareas lógicamente relacionadas, aplicaciones reales, de manera tal de lograr que los usuarios finales interactúen con los procesos sin restricciones de funcionalidad o que cuando se realizan en la secuencia amigabilidad. De esta manera, nos interesa en apropiada y siguiendo las reglas del negocio, particular adaptar la metodología BPM a un producen una salida válida para el negocio. Por esquema de integración MVC con orientación a ejemplo, realizar una transacción bancaria [1] servicios. Actualmente, los procesos de negocios se En la sección 2 enunciaremos las etapas de la están tornando ineficientes y obsoletos metodología de desarrollo basada en el ciclo de básicamente por su incapacidad de adaptarse a vida de procesos propuesto en [1]. En la sección los cambios. Por ende, la necesidad de 3 presentamos cómo integrar el patrón de diseño modelizar y optimizarlos es cada vez más MVC a los procesos ya modelados. Por último importante para las organizaciones [2] encontraremos las conclusiones y las propuestas El cambio de un proceso de negocios para futuras líneas de investigación relacionadas involucra examinar el mismo con el objetivo de con el presente tema. reducir el número de actividades, eliminando las tareas de menor importancia y simplificando el II. DESARROLLO DE APLICACIONES CON proceso en general. Con el objetivo de poder ORIENTACIÓN A PROCESOS introducir cambios, es necesario adoptar un Las organizaciones pueden encontrar en la enfoque que permita rediseñar los procesos de orientación a procesos, y en particular en BPM negocios. Típicamente, las áreas problemáticas un mecanismo para alinear cada una de sus de un cambio en los procesos, sólo pueden ser actividades con los objetivos de negocio. Esto identificadas una vez que el mismo ha sido se ve de alguna manera asegurado por la actividad interdisciplinaria planteada por BPM y incremental, donde cada iteración produce por la toma de conocimiento acerca de cada una resultados que retroalimentan a las siguientes de las etapas y recursos involucrados en las [1] [4] [5] [6]. distintas actividades organizacionales. La estrategia que fija la organización para Se presenta entonces casi en forma obligada alcanzar los objetivos de negocio permite la necesidad de elaborar una metodología de mejorar la competitividad a largo plazo de una trabajo que permita resolver los problemas manera sustentable, donde se tienda a minimizar encontrados en la orientación de procesos a los impactos en la infraestructura de la través de varias etapas de refinamiento. De esta organización que puedan provocar los cambios manera, para desarrollar una aplicación con en el mercado. Dicha estrategia es el hilo orientación a procesos debemos considerar una conductor en todo el ciclo de vida del proceso. serie de fases o etapas que deben llevarse a cabo: A. El patrón MVC aplicado procesos de negocio Estrategia y organización: es independiente de una instancia particular de En este punto contamos ya con el proceso proceso, porque se relaciona con la completamente diseñado, habiendo de esta identificación de la estrategia de negocio, y manera concluido con el análisis de los sus objetivos asociados. componentes que serán diseñados e Estudio: es la primera fase relevante para implementados desde cero, además de los que los procesos individuales, y para post- serán reutilizados por ser preexistentes. proyectos que implementan a los mismos. También se ha podido delimitar con claridad los Aquí se definen los objetivos del proyecto, escenarios de uso del sistema y los actores que se establece el equipo para el mismo, y se intervendrán en los mismos. De esta manera no reúne información para el ambiente. es lo mismo desarrollar procesos que serán Diseño: se reúne la información obtenida y accedidos por usuarios finales, por ejemplo, a se la analiza, consolida y representa a través través de un sitio web, que procesos que serán de los modelos de procesos. Dichos propios de interacción con usuarios internos que modelos serán una base de comunicación podrían estar familiarizados con otros tipos de entre los distintos interesados. ambientes de ejecución. Selección de la plataforma: se utiliza la El patrón MVC es un patrón de diseño de información sobre el ambiente software en el cual toda la arquitectura está organizacional y técnico para decidir la dividida en 3 capas. Típicamente estas capas plataforma en la cual los procesos se son el Modelo, la Vista y el Controlador (figura representarán. 1). Implementación y test: los modelos desarrollados anteriormente se vuelven aquí procesos ejecutables. Se considera el desarrollo de prototipos, y se procuran mejoras mediante interacciones con empleados con conocimiento del dominio. También es necesario considerar aspectos no funcionales, como optimizaciones de rendimiento y robustez. Sobre esta etapa consideraremos a posteriori la integración con el patrón MVC. Fig. 1. Patrón MVC Despliegue o promulgación: se despliega El Modelo incorpora la capa del dominio y la implementación lograda en el ambiente persistencia, es la encargada de guardar los de destino. Se deben tener en cuenta datos en un medio persistente (ya sea una base aspectos técnicos, para asegurar el correcto de datos, un archivo de texto, XML, registro, funcionamiento en producción. etc.). En el Modelo es donde se hace el Operación y control: la aplicación ya está levantamiento de todos los objetos que el en ejecución en el ambiente, de manera tal sistema debe de utilizar, siendo así el proveedor que se hace necesario reunir información de recursos. En general en la actualidad la capa propia de la ejecución y utilizarla para modelo no accede directamente a la base de realizar mejoras evolutivas. datos, sino que interactúa con otra capa de acceso a datos (comúnmente denominada DAO, Debemos tener en cuenta que el orden de Data Access Object, lo cual permite acceder a la estas fases puede variar, y se pueden dar fuente de datos en forma transparente, dependencias entre cada una ellas. Además, la metodología tiene un enfoque iterativo e facilitando futuras actualizaciones o evolución de modelos, llegar a representar al migraciones que pudieran existir). mismo en una base de datos, por ejemplo del La Vista se encarga de presentar la interfaz al tipo relacional. De esta manera lograríamos usuario. En sistemas web, esto es típicamente representar los datos propios del proceso en un HTML, aunque pueden existir otro tipo de entorno persistente. vistas, dependiendo de la plataforma de Vale recordar que tanto la base de datos desarrollo. En la vista sólo se deben de hacer representativa de las entradas y salidas, como operaciones simples, como bifurcaciones cualquier otra requerida por el proceso serán condicionales, ciclos, formateo, etc, delegando accedidas a través de la capa DAO, que de esta manera el grueso de la funcionalidad en permitirá una abstracción del proceso con la capa modelo de la aplicación. respecto al servidor de datos propiamente dicho. El Controlador es el que escucha los cambios Luego pasamos al componente de tipo vista, en la vista y se los envía al modelo, el cual que se encargará de la representación visual de regresa los datos a la vista. Es un ciclo donde las interfaces necesarias para la interacción de cada acción del usuario causa que se inicie una los usuarios finales con el proceso. Será nueva interacción. necesario considerar entonces aquellas entradas El patrón MVC permite modelar aplicaciones del diccionario que representan los flujos con una óptica de orientación a servicios, y por iniciales y finales del proceso, y plantearlas de esto es aplicable a un gran espectro de casos. un modo amigable al usuario. En general se Existen en la industria numerosos desarrollos puede utilizar un mecanismo similar a los EJB basados en esta óptica, y los mismos en general de Java, para poder tomar un archivo XML que presentan buenos niveles de reutilización. representa datos propios del proceso, y generar Igualmente, a pesar de lo alentador en los a partir de este una vista HTML representativa pronósticos, no es trivial realizar un análisis de del mismo. Para la generación de las vistas los posibles escenarios de ejecución del sistema, propiamente dichas se puede utilizar cualquier y de esta manera especificar a ciencia cierta si lenguaje que permita la generación de interfaces realmente el patrón se adapta a nuestra solución visuales (por ejemplo HTML, si se tratara de un [5]. entorno web) y que además permita la A la luz de lo expuesto, iniciamos un análisis interacción con componentes de tipo servidor detallado de cómo integrar el patrón MVC a un (tales son los casos de Java, .NET o PHP). modelo de procesos existente. Comencemos por En esta instancia se considerarán criterios de el componente más importante de la presentación y amigabilidad ampliamente arquitectura: el modelo. Desde un comienzo aceptados, como son, en el caso de las interfaces hemos dejado en claro que nos interesa modelar web, el uso de validaciones en Javascript, o la el comportamiento de nuestra organización a utilización de listas desplegables para los través de procesos mediante BPM, puesto que campos de dominio taxativo. Muchos BPMS esta metodología nos asegura que el proceso generan automáticamente interfaces para la refleja el comportamiento integrado de las interacción con los procesos, pero en la mayoría distintas áreas de la organización, y que además de los mismos no se observan posibilidades de será capaz de absorber con velocidad los modificación y/o consideraciones de cambios impuestos por el mercado, alineado con amigabilidad mínimas. De allí la necesidad de los objetivos de negocio. plantear el MVC como una alternativa válida Así, desarrollaremos un proceso para la interacción con los procesos. implementado en uno o varios lenguajes de tipo Ahora bien, habiendo desarrollado el proceso estándar (el formato de ejecución del proceso de negocio que nos servirá como modelo, y las debería ser código BPEL, y los componentes vistas que permitirán la interacción con los podrían ser o bien web services, o bien usuarios finales, necesitamos un componente componentes implementados en lenguajes que nos permita la interacción de ambos. Este ampliamente aceptados como Java, PHP o rol es cubierto por el Controlador. El mismo .NET). deberá acceder al proceso, lo cual puede ser Paralelamente a dicho desarrollo nos efectuado de dos maneras: encontramos con la necesidad de modelar los una primera aproximación, la más simple datos. Estos se encargan de representar los de implementar, sería con el modo librería: flujos de información que se dan entre las el proceso es compilado y se lo utiliza actividades del proceso, como así también como una librería por parte del controlador. cualquier otra interacción del proceso con bases Esto tiene como desventaja que cualquier de datos externas a este. El conjunto de entradas cambio en el proceso no es trivial, ya que y salidas del proceso pueden modelarse a través será necesario recompilarlo y actualizarlo de un diccionario de datos con una notación en el controlador para que este funcione estándar tipo XML, y luego, mediante una con normalidad. La otra alternativa, de mucho mayor el criterio del “todo o nada”, aplicándolo a todo calidad, será la de crear un stub (un objeto su espectro de problemas, o siguiendo en la intermediario que representa al proceso inercia de la ausencia de actualización. Aquí dentro del controlador) que permite estamos planteando un punto intermedio donde interactuar con el proceso, el cual ha sido presentamos mecanismos innovadores propios previamente publicado como un web de BPM, integrados con un patrón de diseño service. Esto aporta mayor reusabilidad, ya propio de aplicaciones tradicionales del que el proceso puede ser accedido por esquema cliente servidor. cualquier aplicación que tenga acceso al bus de servicios, como así también mayor B. Conclusiones transparencia en la actualización, ya que el BPM constituye en la actualidad la mejor proceso puede ser modificado o incluso aproximación para lograr alinear los procesos de relocalizado sin tener esto impacto sobre las negocio con los objetivos de la organización, y aplicaciones que lo invocan. permitir así que los requerimientos del mercado De esta manera, nuestra aplicación resultaría se absorban con mayor velocidad por parte de de los siguientes componentes ilustrados en la los sistemas de información presentes en la figura 3: un proceso implementado en código organización. Esto se debe fundamentalmente a BPEL que se ejecuta sobre un servidor de la acción interdisciplinaria que propone procesos, y que cumple el rol de modelo, intrínsecamente la metodología, donde los accediendo a los componentes de datos a través procesos son diseñados, implementados y de una capa independiente denominada DAO. ejecutados por áreas distintas de la Por otro lado, una aplicación web que puede organización. ejecutarse sobre un servidor genérico de Uno de los mayores desafíos que encuentra aplicaciones y que presenta las interfaces BPM es la necesidad de nivelar la generación de necesarias para que nuestro proceso sea nuevos componentes informáticos junto con la accedido por usuarios finales. Por último, un capacidad de reutilizar elementos existentes. componente de tipo controlador implementado Aquí, el tópico facilitador es SOA, ya que los preferentemente en una tecnología compatible servicios permitirán la reutilización de con las vistas, y que recibe los requerimientos componentes existentes, como así también la generados a través de las interfaces de usuario, y portabilidad y escalabilidad de los nuevos los envía al proceso mediante un stub surgido de desarrollos. La integración de componentes la publicación del proceso como un web service. existentes en la organización es una de las Luego al recibir los resultados, el controlador capacidades fundamentales, ya que de otra los retorna al componente de tipo vista y este los manera las organizaciones se verían obligadas a despliega para su visualización. [6][7][8] desechar aplicaciones que les son funcionales y que han representado fuertes inversiones. Así, encontrando un equilibrio entre actualizaciones y nuevos desarrollos, con integración de recursos preexistentes se favorece a la absorción de BPM en organizaciones de nichos disímiles. Durante el ciclo de vida de los procesos es necesario utilizar los BPMS para la gestión de workflow, aunque estos no siempre logran adaptarse a la diversidad de casos de usos posibles. Si necesitamos una interacción de usuarios finales con los procesos, entonces las interfaces autogeneradas por los mismos no son la mejor opción, ya que las mismas no cumplen con requisitos de amigabilidad y funcionalidad. Además, requerimos que las aplicaciones a desarrollar cumplan con normas de Figura 3. Gráfico de la arquitectura estandarización actuales y tengan la capacidad de reutilizar recursos preexistentes. Por esto El aspecto más importante de esta planteamos una metodología de desarrollo que integración se da en el hecho de incluir los cubra las distintas fases en el ciclo de vida de un procesos propios de BPM a una arquitectura proceso, haciendo hincapié en la fase de probada y con buenos resultados dentro de la desarrollo. industria, tal como lo es el patrón MVC. Uno de En esta última fase vemos la necesidad de los riesgos que corren las organizaciones al crear aplicaciones que interactúen con los adoptar una determinada metodología es adoptar procesos, aunque no de manera caótica sino ordenada. MVC es un patrón de diseño que es completamente independiente de las vistas, conforma arquitecturas altamente probadas en la ya que la unión entre ambos no es configurable industria, y con muy buenos indicadores de al ser autogenerada. adaptabilidad y escalabilidad. Para adaptar Resta ver de esta manera la evolución de dicho patrón de diseño a nuestro entorno de los BPMS actuales en la gestión de procesos procesos, hemos propuesto una aproximación integrados con una arquitectura MVC. que permite considerar a los procesos de negocio como el componente modelo que C. LÍNEAS DE INVESTIGACIÓN FUTURAS interactúa con los datos y que concentra el Como posibles líneas futuras se plantean, grueso de la funcionalidad. En si mismos, los en primer lugar la necesidad de indagar aún más procesos son el núcleo que nuestra arquitectura, en la generación del diccionario de datos del y su funcionamiento es independiente de las proceso, y la evolución del mismo en un modelo aplicaciones que deseen accederlos en forma persistente. Esto debe apuntar a no abstraer en externa. Por otro lado tendremos los forma total la funcionalidad del proceso de los componentes de tipo vista independientes del datos que le sirven de insumo al mismo. Esto modelo y que se encargan de la lógica de apunta fundamentalmente a la capacidad de visualización. A estos componentes les autogenerar la base de datos del proceso pediremos que cumplan con aspectos mediante el modelo de flujo de datos entre funcionales y de amigabilidad que no poseen las tareas. interfaces autogeneradas por muchos de los En la misma línea se encuentran entonces la BPMS actuales. En el medio, se encuentra el generación de interfaces de proceso controlador que hace las veces de puente entre relacionadas con las entradas y salidas el modelo y las vistas, y cumple el rol de generadas por este último, tratando que las “broker” en una analogía con arquitecturas mismas estén destinadas a usuarios finales bajo orientadas a servicios, donde el servicio normas de amigabilidad y estandarización. Por principal en este caso está dado por el proceso otro lado, es necesario profundizar en el hecho de negocio. que las aplicaciones que consumen el proceso En la actualidad se observa una tendencia como servicio generen información que permita dentro de las herramientas que permiten luego efectuar actividades de minería tendientes gestionar BPM a concentrar el desarrollo de los a optimizar el funcionamiento del proceso, procesos en dos fases: debido a que la ejecución del proceso excede el la primera y fundamental en el diseño ambiente de propio del BPMS considerado. Esta del proceso propiamente dicho, última actividad tiende a aumentar las frecuentemente con la notación estándar posibilidades de efectuar minería de procesos BPMN, más algún otro elemento de diseño. capaz de retroalimentar el desarrollo de Es el proceso quien se encargará de acceder procesos. a las bases de datos necesarias. Hasta aquí el componente modelo. III. REFERENCIAS La segunda radica en hacer un diseño meticuloso de las interfaces de usuario, las [1] Mathias Weske – “BUSINESS PROCESS MANAGEMENT - Concepts, Languages,architectures”. cuáles constituyen el componente de tipo Springer-Verlag Berlin Heidelberg 2007. vista. La tendencia es desarrollarlas para [2] Judith Hurwitz, Robin Bloor, Carol Baroudi, Marcia plataformas web y que las mismas cumplan Kaufman – “Service Oriented Architecture for con requisitos de validaciones y dummies”. Wiley Publishing Inc 2007. [3] IBM Corporation – “An IBM Proof of Technology. representación estándares en la actualidad. Discovering the value of Websphere BPM for your organization”. IBM Corporation 2008. Estas últimas dos tareas corren por cuenta del [4] Material didáctico del curso “SOA-BPM” organizado equipo de desarrollo. por SADIO. Noviembre 2008. [5] Definición del patrón MVC Una vez que tenemos los procesos http://java.sun.com/blueprints/patterns/MVC.html (al implementados y las interfaces que 27/07/2010) representarán los formularios para el ingreso de [6] José Martinez Garro – “Análisis metodológico de la los insumos necesarios para los primeros, el plataforma IBM Websphere BPM y sus equivalentes funcionales en herramientas de licenciamiento de código controlador suele ser implementado en forma fuente abierto” – Tesina de Grado – Facultad de automática por la plataforma del BPMS. Esto Informática UNLP 2010. es, el entorno genera automáticamente los [7] Definiciones del patrón MVC mecanismos que asocian los procesos con sus http://web2development.blogspot.com/2007/05/patron- mvc.html (al 27/07/2010) interfaces para lograr la ejecución. Esto tiene la [8] Programación con MVC http://www.proactiva- ventaja obvia del ahorro en tiempos de calidad.com/java/patrones/mvc.html (al 27/07/2010) desarrollo y la disminución de errores. Por otro lado la desventaja que implica que el proceso no