Procesamiento de transacciones

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
El procesamiento de información se divide en operaciones indivisibles

En informática, el procesamiento de transacciones es el procesamiento de información que se divide en operaciones individuales e indivisibles denominadas transacciones. Cada transacción debe tener éxito o fallar como una unidad completa; nunca puede ser sólo parcialmente completa.

Por ejemplo, cuando compra un libro en una librería en línea, cambia dinero (en forma de crédito) por un libro. Si su crédito es bueno, una serie de operaciones relacionadas aseguran que usted obtenga el libro y la librería obtenga su dinero. Sin embargo, si una sola operación de la serie falla durante el intercambio, falla todo el intercambio. No obtienes el libro y la librería no recibe tu dinero. La tecnología responsable de hacer que el intercambio sea equilibrado y predecible se llama procesamiento de transacciones. Las transacciones garantizan que los recursos orientados a datos no se actualicen permanentemente a menos que todas las operaciones dentro de la unidad transaccional se completen correctamente. Al combinar un conjunto de operaciones relacionadas en una unidad que tiene éxito o falla por completo, se puede simplificar la recuperación de errores y hacer que la aplicación sea más confiable.

Los sistemas de procesamiento de transacciones consisten en hardware y software de computadora que alberga una aplicación orientada a transacciones que realiza las transacciones de rutina necesarias para realizar negocios. Los ejemplos incluyen sistemas que administran la entrada de pedidos de ventas, reservas de aerolíneas, nómina, registros de empleados, fabricación y envío.

Dado que la mayoría, aunque no necesariamente todo, el procesamiento de transacciones actual es interactivo, el término a menudo se trata como sinónimo de procesamiento de transacciones en línea.

Descripción

El procesamiento de transacciones está diseñado para mantener la integridad de un sistema (por lo general, una base de datos o algunos sistemas de archivos modernos) en un estado conocido y consistente, al garantizar que las operaciones interdependientes en el sistema se completen con éxito o se cancelen con éxito.

Por ejemplo, considere una transacción bancaria típica que implique mover $700 de la cuenta de ahorros de un cliente a la cuenta corriente de un cliente. Esta transacción implica al menos dos operaciones separadas en términos informáticos: debitar la cuenta de ahorros por $700 y acreditar la cuenta corriente por $700. Si una operación tiene éxito pero la otra no, los libros del banco no se equilibrarán al final del día. Por lo tanto, debe haber una manera de garantizar que ambas operaciones tengan éxito o ambas fracasen para que nunca haya ninguna inconsistencia en la base de datos del banco en su conjunto.

El procesamiento de transacciones vincula varias operaciones individuales en una única transacción indivisible y garantiza que todas las operaciones de una transacción se completen sin errores o que ninguna de ellas se complete. Si algunas de las operaciones se completan pero se producen errores cuando se intentan las demás, el sistema de procesamiento de transacciones "retrocede" todas las operaciones de la transacción (incluidas las exitosas), borrando así todos los rastros de la transacción y restaurando el sistema al estado consistente y conocido en el que se encontraba antes de que comenzara el procesamiento de la transacción. Si todas las operaciones de una transacción se completan con éxito, el sistema confirma la transacción y todos los cambios en la base de datos se hacen permanentes; la transacción no se puede deshacer una vez que se hace esto.

El procesamiento de transacciones protege contra errores de hardware y software que podrían dejar una transacción parcialmente completa. Si el sistema informático falla en medio de una transacción, el sistema de procesamiento de transacciones garantiza que se cancelen todas las operaciones en cualquier transacción no comprometida.

Por lo general, las transacciones se emiten simultáneamente. Si se superponen (es decir, necesitan tocar la misma parte de la base de datos), esto puede crear conflictos. Por ejemplo, si el cliente mencionado en el ejemplo anterior tiene $150 en su cuenta de ahorros e intenta transferir $100 a otra persona y al mismo tiempo transfiere $100 a la cuenta corriente, solo uno de ellos puede tener éxito. Sin embargo, obligar a que las transacciones se procesen secuencialmente es ineficiente. Por lo tanto, las implementaciones concurrentes del procesamiento de transacciones están programadas para garantizar que el resultado final refleje un resultado libre de conflictos, el mismo que podría lograrse si se ejecutaran las transacciones secuencialmente en cualquier orden (una propiedad llamada serializabilidad). En nuestro ejemplo, esto significa que no importa qué transacción se haya emitido primero, la transferencia a una persona diferente o el movimiento a la cuenta corriente tiene éxito, mientras que la otra falla.

Metodología

Los principios básicos de todos los sistemas de procesamiento de transacciones son los mismos. Sin embargo, la terminología puede variar de un sistema de procesamiento de transacciones a otro, y los términos que se utilizan a continuación no son necesariamente universales.

Restaurar

Los sistemas de procesamiento de transacciones garantizan la integridad de la base de datos al registrar los estados intermedios de la base de datos a medida que se modifica, y luego usar estos registros para restaurar la base de datos a un estado conocido si no se puede confirmar una transacción. Por ejemplo, las copias de la información en la base de datos antes de su modificación por una transacción son reservadas por el sistema antes de que la transacción pueda realizar cualquier modificación (esto a veces se denomina una imagen anterior).). Si alguna parte de la transacción falla antes de que se confirme, estas copias se utilizan para restaurar la base de datos al estado en que se encontraba antes de que comenzara la transacción.

Poner en marcha

También es posible mantener un diario separado de todas las modificaciones a un sistema de administración de base de datos. (a veces llamado imágenes posteriores). Esto no es necesario para la reversión de transacciones fallidas, pero es útil para actualizar el sistema de gestión de la base de datos en caso de que falle la base de datos, por lo que algunos sistemas de procesamiento de transacciones lo proporcionan. Si el sistema de administración de la base de datos falla por completo, debe restaurarse a partir de la copia de seguridad más reciente. La copia de seguridad no reflejará las transacciones realizadas desde que se realizó la copia de seguridad. Sin embargo, una vez que se restaura el sistema de administración de la base de datos, el diario de imágenes posteriores se puede aplicar a la base de datos (avance) para actualizar el sistema de administración de la base de datos. Cualquier transacción en curso en el momento del error se puede revertir. El resultado es una base de datos en un estado consistente y conocido que incluye los resultados de todas las transacciones comprometidas hasta el momento de la falla.

Interbloqueos

En algunos casos, dos transacciones pueden, en el curso de su procesamiento, intentar acceder a la misma parte de una base de datos al mismo tiempo, de una manera que les impide continuar. Por ejemplo, la transacción A puede acceder a la parte X de la base de datos y la transacción B puede acceder a la parte Y de la base de datos. Si en ese momento, la transacción A intenta acceder a la parte Y de la base de datos mientras que la transacción B intenta acceder a la parte X, se produce un punto muerto y ninguna transacción puede avanzar. Los sistemas de procesamiento de transacciones están diseñados para detectar estos interbloqueos cuando ocurren. Por lo general, ambas transacciones se cancelarán y retrotraerán, y luego se iniciarán de nuevo en un orden diferente, automáticamente, para que el punto muerto no vuelva a ocurrir. O, a veces, solo una de las transacciones bloqueadas se cancelará, revertirá y reiniciará automáticamente después de un breve retraso.

Los interbloqueos también pueden ocurrir entre tres o más transacciones. Cuantas más transacciones involucradas, más difíciles son de detectar, hasta el punto de que los sistemas de procesamiento de transacciones encuentran que existe un límite práctico para los interbloqueos que pueden detectar.

Transacción de compensación

En los sistemas donde los mecanismos de compromiso y reversión no están disponibles o no son deseables, a menudo se usa una transacción de compensación para deshacer las transacciones fallidas y restaurar el sistema a un estado anterior.

Criterios ACID

Jim Gray definió las propiedades de un sistema de transacciones confiable a fines de la década de 1970 con el acrónimo ACID: atomicidad, consistencia, aislamiento y durabilidad.

Atomicidad

Los cambios de estado de una transacción son atómicos: suceden todos o no sucede ninguno. Estos cambios incluyen cambios en la base de datos, mensajes y acciones en los transductores.

Coherencia

Coherencia: Una transacción es una transformación correcta del estado. Las acciones tomadas como grupo no violan ninguna de las restricciones de integridad asociadas con el estado.

Aislamiento

Aunque las transacciones se ejecutan simultáneamente, a cada transacción T le parece que otras se ejecutaron antes o después de T, pero no ambas.

Durabilidad

Una vez que una transacción se completa con éxito (se confirma), sus cambios en la base de datos sobreviven a las fallas y retienen sus cambios.

Beneficios

El procesamiento de transacciones tiene estos beneficios:

  • Permite compartir los recursos informáticos entre muchos usuarios
  • Cambia el tiempo de procesamiento del trabajo a cuando los recursos informáticos están menos ocupados
  • Evita idling los recursos informáticos sin interacción y supervisión humana de minuto a minuto
  • Se utiliza en costosas clases de computadoras para ayudar a amortizar el costo manteniendo altas tasas de utilización de esos costosos recursos

Desventajas

  • Tienen costos de configuración relativamente costosos
  • Hay una falta de formatos estándar
  • Hardware e incompatibilidad de software

Implementaciones

El software de procesamiento de transacciones estándar, como el Sistema de gestión de la información de IBM, se desarrolló por primera vez en la década de 1960 y, a menudo, estaba estrechamente relacionado con sistemas de gestión de bases de datos particulares. La computación cliente-servidor implementó principios similares en la década de 1980 con un éxito mixto. Sin embargo, en años más recientes, el modelo cliente-servidor distribuido se ha vuelto considerablemente más difícil de mantener. A medida que aumentaba el número de transacciones en respuesta a varios servicios en línea (especialmente la Web), una única base de datos distribuida no era una solución práctica. Además, la mayoría de los sistemas en línea consisten en un conjunto completo de programas que funcionan juntos, a diferencia de un modelo cliente-servidor estricto en el que un solo servidor podría manejar el procesamiento de transacciones. En la actualidad, se encuentran disponibles varios sistemas de procesamiento de transacciones que funcionan a nivel interprograma y que se escalan a sistemas grandes, incluidos los mainframes.

Un esfuerzo es X/Open Distributed Transaction Processing (DTP) (consulte también Java Transaction API (JTA). Sin embargo, los entornos de procesamiento de transacciones patentados como IBM's CICS siguen siendo muy populares, aunque CICS ha evolucionado para incluir también estándares abiertos de la industria.

El término procesamiento de transacciones extremas (XTP) se utilizó para describir los sistemas de procesamiento de transacciones con requisitos extraordinariamente exigentes, en particular los requisitos de rendimiento (transacciones por segundo). Dichos sistemas pueden implementarse a través de arquitecturas distribuidas o de estilo de clúster. Se utilizó al menos en 2011.

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save