Está en la página 1de 5

El patrón de diseño MVC integrado con

los modelos de procesos


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

También podría gustarte