La ejecución de un proceso empresarial consta de una o más transacciones . Cada transacción puede consistir en varias operaciones individuales pero, en su conjunto, mueve el sistema entre estados consistentes.
Hay dos grupos de sistemas en los que se pueden aplicar transacciones compensatorias :
1. En el contexto de una base de datos, esto a menudo se logra fácilmente mediante transacciones y el mecanismo de compromiso / reversión . [1] La lógica de transacción de compensación podría implementarse como adicional además de la base de datos que soporta la confirmación / reversión . En ese caso, podemos reducir la granularidad de las transacciones comerciales.
2. Para los sistemas sin un mecanismo de compromiso / reversión disponible, se puede deshacer una transacción fallida con una transacción de compensación , que devolverá el sistema a su estado inicial. Por lo general, esta es solo una solución que debe implementarse manualmente y no puede garantizar que el sistema siempre termine en un estado consistente. Es posible que el diseñador del sistema deba considerar qué sucede si la transacción de compensación también falla.
Las transacciones de compensación también se utilizan en caso de que una transacción sea de larga duración (comúnmente llamadas transacciones de Saga ), por ejemplo, en un proceso comercial que requiere la participación del usuario. En tales casos, los datos se guardarán de forma permanente, pero es posible que posteriormente sea necesario revertirlos, quizás debido a que el usuario ha optado por cancelar la operación. A diferencia de las reversiones convencionales, normalmente se requerirá una lógica empresarial específica para revertir una transacción de larga duración y restaurar el sistema a su estado original. Este tipo de transacción difiere de las transacciones distribuidas (a menudo implementadas utilizando el protocolo de confirmación de dos fases ), porque aunque ambos tipos de transacciones pueden resultar en la actualización de múltiples almacenes de datos, las transacciones de compensación permiten que las actualizaciones abarquen un largo período de tiempo.
Las transacciones de compensación a menudo se diseñan en servicios web que participan en la ejecución de procesos comerciales que forman parte de una solución de arquitectura orientada a servicios .
Ver también
Referencias
- ^ Gray, Jim (junio de 1981). "El concepto de transacción: virtudes y limitaciones". Actas de la conferencia Very Large Database .