Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Patrones de procesos
Diseños para aplicar la infraestructura de descomposición a nuevas
situaciones
Patrones de procesos
Parte 1 describió una técnica de descomposición de procesos que puede usar para alinear
los procesos empresariales a una arquitectura objeto basada en la Arquitectura Orientada a
Servicios (SOA). Esa técnica organiza los procesos de acuerdo con una pila de capas débilmente
acopladas que se asemeja mucho a una pila de soluciones SOA, como muestra la Figura 1.
© Copyright IBM Corporation 2011 Marcas
Ese artículo exhibe a la técnica al demostrar patrones de procesos empresariales que la usan.
Los patrones son una forma muy útil de representar aspectos comportamentales recurrentes de
las soluciones de TI y pueden ser aplicados a modelos de proceso.
Este artículo no enfoca los patrones de van der Aalst, sino lo que es (o no es) un modelo de
proceso bien proyectado — independientemente de la notación o plataforma — a través de
los principios de descomposición explicados en la Parte 1.
Problema
¿Qué problema el patrón intenta resolver?
Solución
Informaciones adicionales acerca de la solución más allá del diagrama de procesos. ¿Por
qué esa solución es mejor que las demás?
La BPMN que se usa aquí fue ampliada (según lo permitido por el estándar) con los iconos
mostrados en la Figura 2.
En los diagramas de proceso de este artículo, se puede abreviar la palabra “transacción” como
"Txn."
Siguiendo el orden de las capas de la Figura 1, el resto de este artículo trata de:
Transacción de autoservicio
Figura 3. Transacción de autoservicio
Problema
Necesita modelar el proceso de ingresar una transacción comercial a través de formularios
de una interfaz de usuario basada en la Web. Se puede invocar la misma transacción
empresarial a través de canales diferentes.
Solución
El modelo de proceso es un flujo de interfaz de usuario con llamadas a servicios de
validación antes de la ejecución de la transacción. Combinado al patrón ejecutar transacción,
este patrón ayuda a posibilitar la separación entre los procesos empresariales específicos
para el canal y los independientes del canal. También evita el trabajo manual innecesario de
corrección de errores, generado por transacciones Web falladas, al reportar los errores al
usuario.
Controlador de proceso
Capa del consumidor, flujo de pantalla. Normalmente, se implementa eso a través de
cualquier tecnología de interfaz de usuario, como Java™Server Pages (JSPs) con un
controlador de flujo de página.
Reutiliza
Ejecutar transacción, un patrón de proceso de corta duración.
Ejemplo
La mayoría de las transacciones online involucran el relleno de formularios, como un proceso
de pedido o una solicitud de hipoteca.
Transacción de teclado con remisión
Problema
Es una variación del patrón de transacción de autoservicio que se mencionó anteriormente.
En este caso, un asistente está tecleando los detalles de una transacción, provenientes de
un formulario de papel o de una conversación telefónica con el cliente. Si la transacción
resulta en errores, el asistente puede optar por remitirlo a otra persona, como un supervisor o
especialista.
Solución
El usuario puede remitir la transacción a un especialista en el caso de que haya problemas.
Eso normalmente ocurre si se rechazan las validaciones o si la transacción en sí (si es de
corta duración) retorna una excepción a nivel empresarial.
Controlador de proceso
Capa del consumidor, flujo de pantalla. Normalmente, se implementa eso a través de
cualquier tecnología de interfaz de usuario, como JSPs con un controlador de flujo de página.
Reutiliza
El patrón de proceso de corta duración ejecutar transacción y el patrón de proceso de larga
duración resolver problemas en la transacción.
Ejemplo
Alguien trata de comprar un teléfono celular en una tienda pero, debido a alguna razón
desconocida, la transacción de pedido no es aceptada por el sistema central. Para no perder
el negocio, el asistente de la tienda remite el pedido a las operaciones centrales, pero recibe
el pago del cliente (como uno de los pasos anteriores del proceso) y, en cambio, entrega el
teléfono. Luego, las operaciones centrales pueden resolver cualquier problema pendiente con
la transacción de pedido para que el aprovisionamiento de red pueda ocurrir.
Transacción de papel con gestión de contenido empresarial (ECM)
Figura 5. Transacción de papel con ECM
Problema
Un formulario de papel llega a la organización y es enrutado al departamento de ECM para
escaneo, almacenamiento y extracción de datos.
Solución
El aspecto clave de ese patrón es la invocación de una transacción a través de los datos
extraídos, como muestra la Figura 6. Ese patrón presupone que el punto fuerte del sistema
de ECM no es el área de manejar las excepciones empresariales provenientes de esta
transacción. Se invoca una variación de la transacción que tiene la resolución de problemas
incorporada, a través de un mecanismo del tipo "disparar y olvidar".
Controlador de proceso
Capa del consumidor, sistema de ECM.
Reutiliza
Ejecutar transacción con resolución de problemas, un patrón de proceso de larga duración.
Ejemplos
Procesamiento de cambios de dirección enviados en un formulario de papel a una
organización gubernamental.
Transacción de empresa a empresa (B2B) en lote con errores rechazados
Figura 6. Transacción B2B en lote con errores rechazados
Problema
Una empresa expone una interfaz a organizaciones externas para recibir ciertas
transacciones en formato de lote.
Solución
Se extraen del lote los datos referentes a transacciones individuales y se les invocan
individualmente, uno por uno, como procesos empresariales de corta duración. Las
excepciones resultantes de las transacciones son cotejadas y fusionadas para devolución a la
organización que llama.
El canal de B2B reutiliza la misma lógica de transacción que está disponible también para los
otros canales. Por cuestiones de rendimiento, en casos de volúmenes extremadamente altos,
implementar el patrón a través de los principios de SOA que fueron mencionados tal vez no
sea la mejor solución. En lugar de eso, la implementación puede, por ejemplo, basarse en
scripts que operan directamente en la base de datos.
Controlador de proceso
Capa del consumidor, plataforma del tipo ESB.
Reutiliza
El patrón de proceso de corta duración ejecutar transacción.
Ejemplo
Una organización de telecomunicaciones móviles envió a servicios de directorio sus
asignaciones de números referentes a la semana anterior. Los servicios de directorio
procesan ese lote de acuerdo con el patrón.
Hay muchas variaciones en ese caso de ejemplo de B2B.
Problema
Un proceso de consumidor necesita ejecutar una transacción pero no tiene la posibilidad de
manejar las excepciones (problemas) que puedan surgir.
Solución
Un proceso de larga duración que incluye la ejecución de la transacción como un subproceso
de corta duración y maneja las excepciones correspondientes como un subproceso de
larga duración. Ese patrón permite el procesamiento de transacciones con resolución de
problemas y sin acoplamiento fuerte entre las dos funciones.
Controlador de proceso
Capa de proceso empresarial (de la arquitectura de referencia de SOA), proceso de larga
duración orquestado, implementado a través de un motor de BPM.
Reutiliza
El patrón de proceso de corta duración ejecutar transacción y el patrón de proceso de larga
duración resolver problemas en la transacción.
Ejemplo
Transacciones de B2B en las cuales los asociados de negocios no cuentan, ellos mismos,
con recursos de corrección de errores. Transacciones offline basadas en papel.
Acuse de recibo de validación
Figura 8. Acuse de recibo de validación
Problema
Un proceso de consumidor necesita someter una transacción (que representa un pedido en
la Figura 8). Es conveniente representar la transacción como un proceso de larga duración.
Sin embargo, el cliente necesita saber de inmediato si las validaciones básicas tuvieron
exito o no. También necesita un descriptor de contexto para el proceso, con el objetivo de
recuperar las informaciones de estado en una fase posterior.
Solución
Existen varias soluciones. La que se describe aquí es un proceso de larga duración que
comienza por validaciones de corta duración, seguidas por un paso que comunica el ID del
pedido al consumidor, seguido por el proceso de larga duración para atención de pedidos.
Ese patrón permite que un proceso de larga duración retorne un descriptor de contexto o
resultados provisionales antes que sus aspectos de larga duración inicien.
Controlador de proceso
Capa de proceso empresarial (de la arquitectura de referencia de SOA), proceso de larga
duración, implementado a través de un motor de BPM.
Reutiliza
No se aplica
Ejemplo
La mayoría de las aplicaciones donde se está realizando un pedido y que necesitan una
confirmación inmediata del pedido, pero la atención del pedido es un proceso de larga
duración.
Existe una solución alternativa para ese problema (que el autor prefiere). Se puede tener
un proceso separado de corta duración, como hacer pedido. El resultado del proceso es
un evento del tipo "disparar y olvidar" que resulta en el lanzamiento del proceso de larga
duración atender pedido. Esta solución, efectivamente, es lo que está en el patrón ejecutar
transacción.
Resolver problemas en la transacción
Figura 9. Resolver problemas en la transacción
Problema
Hay problemas (errores o excepciones) en una transacción que deben ser resueltos por un
especialista (o más) en una empresa.
Solución
Tener un proceso de larga duración separado destinado a la resolución de problemas, que
es específico para una transacción o para los problemas que surjan (dependiendo de dónde
están los puntos en común—el ejemplo presupone la primera alternativa). Sin embargo,
es separado de la transacción — por tanto, la aplicación de consumidor puede optar por
invocarlo (o no) si la transacción resulta en una excepción o más.
Dependiendo del tipo de problema de la transacción, se asigna el problema a un subproceso
de resolución específico para el tipo de problema. Puede ser simple, que involucra un único
especialista, o complejo, que involucra sus propios procesos de larga duración. Varios
problemas se resuelven en secuencia. La salida de cada subproceso de resolución de
problemas es un distintivo que indica lo que se ha hecho con la transacción.
Por ejemplo: una transacción puede haber sido reenviada con éxito, reenviada sin éxito y
con problemas restantes o bien totalmente rechazada. Si los problemas permanecen, son
reasignados de acuerdo con su tipo. Generalmente no es posible resolver problemas en
paralelo, ya que la resolución puede resultar en un cambio en la carga útil de la transacción.
Problema
Cuando un cliente alquila algo, es conveniente que la organización siga la jornada del cliente
del inicio al fin. El proceso no está bajo el control total de la empresa, ya que depende del
cliente para recolectar el elemento alquilado y devolverlo a tiempo. Es posible que el cliente
no siga los pasos determinados exactamente cuando sea necesario.
Solución
Se lanza el proceso de alquiler como resultado de un nuevo evento de reservación. Se
asigna inmediatamente el recurso que se está alquilando. Lo que sucede después no
depende de la lógica empresarial (como el gateway de decisión de BPMN usado en los otros
patrones), sino de eventos externos como:
• El cliente cancela la reservación.
• El cliente viene a iniciar el alquiler.
• La hora límite de la reservación vence.
Se usa el gateway de BPMN basado en eventos. El evento que ocurre primero determina
el camino del proceso empresarial. Se presupone que el evento uso del recurso iniciado es
accionado por un proceso separado de corta duración que registra el inicio del alquiler (por
ejemplo: el cliente recolectando el elemento). Se presupone que el evento uso del recurso
concluido es accionado por un proceso semejante de corta duración que registra el fin del
alquiler.
El evento uso del recurso concluido también puede resultar en un proceso totalmente
separado: preparar el recurso para el próximo uso. Eso no forma parte de la jornada del
cliente.
Controlador de proceso
Capa de proceso empresarial (de la arquitectura de referencia de SOA), proceso de larga
duración, implementado a través de un motor de BPM.
Reutiliza
No se aplica.
Ejemplo
Alquiler de DVD, reservación de hotel, alquiler de auto.
Patrones de actividad humana
Actividades humanas es la capa que representa las actividades en procesos orquestados de
larga duración (o procesos de flujo de trabajo) que son realizadas por una única persona. Las
actividades humanas aparecen en la lista de trabajo de alguien que tiene el rol adecuado antes
que la persona comience a trabajar en la actividad.
Controlador de proceso
Capa de actividad humana, flujo de pantalla.
Reutiliza
El patrón de proceso de corta duración ejecutar transacción.
Ejemplo
Cualquier proceso que tiene un paso de resolución de problemas realizado por personas.
Patrones de procesos de corta duración
Los procesos orquestados de corta duración frecuentemente representan transacciones
empresariales que tienen una relación directa con los objetivos del cliente. Los patrones a
continuación están relacionados con el procesamiento de esas transacciones.
Ejecutar transacción
Figura 12. Ejecutar transacción
Problema
Necesita un proceso empresarial que implementa una transacción y que puede ser
reutilizado en varios canales (consumidores). Esa transacción puede ser hacer un pedido o
una solicitud o cambiar los datos de la empresa.
Solución
Los elementos de una transacción contenidos en un proceso empresarial de corta duración.
El primer paso en cualquier transacción es realizar validaciones empresariales. Pueden
realizarse en paralelo, como muestra la Figura 12, o en secuencia. Se realiza cada validación
y se cotejan los resultados para devolverlos a la aplicación que llama en caso de anomalía.
Después de las validaciones se actualizan los sistemas subyacentes, en paralelo, como se
muestra, o en secuencia.
Muchas transacciones requieren un proceso de atención. En ese ejemplo, será lanzada
"entre bastidores" como resultado del evento que se generó. Se devuelve el ID de
transacción al consumidor para interrogar el estado de los procesos de atención.
Ese patrón se aplica a varios tipos de transacción, como hacer un pedido, solicitar una
hipoteca o una licencia de conducir. Permite que las solicitudes online de los consumidores
obtengan retroalimentación inmediata respecto al éxito de la transacción. El usuario puede
aplicar correcciones e intentar reenviar. Las aplicaciones offline para consumidores (por
ejemplo: las que no tienen usuario) pueden reutilizar esa función y asegurar que se resuelvan
los problemas al llamar un proceso que usa el patrón resolver problemas en la transacción o
al llamar un proceso que usa directamente el patrón ejecutar transacción con resolución de
problemas.
Controlador de proceso
Capa de procesos empresariales, proceso de corta duración, implementado a través de un
motor de BPM o un código personalizado (Java, por ejemplo).
Reutiliza
No se aplica.
Ejemplo
Hacer un pedido.
Ejecutar transacción con compensación
Figura 13. Ejecutar transacción con compensación
Problema
El mismo problema de ejecutar transacción, pero también necesitamos asegurar que la
transacción sea atómica, lo que significa que los servicios llamados desde dentro del
proceso retroceden al estado anterior si uno de ellos falla.
Solución
Es una versión avanzada de ejecutar transacción. Un evento de compensación
desencadena los eventos intermedios individuales dentro del proceso. Cada uno de esos
eventos intermedios resulta en la llamada a la función deshacer de los servicios que la
tienen. Aunque los pasos de validación ejecutados antes de las acciones de confirmar (las
actividades de "actualizar sistema") deben asegurar que las acciones de confirmar sean
exitosas, en la práctica no se puede confiar en eso todo el tiempo. Ese patrón implementa
un enfoque muy cuidadoso para cubrir las anomalías de las confirmaciones.
Controlador de proceso
Capa de proceso empresarial, proceso de corta duración, implementado a través de un
motor de BPM.
Reutiliza
No se aplica.
Ejemplo
Hacer un pedido.
Temas relacionados
• Lea la Parte 1 de esa serie.
• Patrones de Flujo de Trabajo captura un conjunto amplio de patrones de procesos
empresariales identificados por los equipos en Eindhoven y Queensland, liderados por
Wil van der Aalst y Arthur ter Hofstede.
• Las especificaciones y tutoriales de la BPMN (V1.1) se proporcionan en Grupo de Gestión
de Objetos / Iniciativa de Gestión de Procesos Empresariales.
• Aprenda más acerca de IBM WebSphere Business Modeler, una herramienta de
modelación de proceso que soporta la notación BPMN.
• Obtenga un vínculo de RSS referente a esa serie de artículos.
• Encuentre recursos para ayudarle a proyectar sistemas empresariales y sistemas de
software en kits gratis de arquitectura de TI de IBM.