miércoles, 28 de enero de 2009

Utilizacion e importancia de las transacciones en la comunicacion distribuida

Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras están conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la misma red local, se les llaman aplicaciones locales.

Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas transacciones que acceden a información en más de una sucursal. Estas transacciones son llamadas transacciones globales o transacciones distribuidas.

La existencia de transacciones globales será considerada como una característica que nos ayude a discriminar entre las BDD y un conjunto de base de datos locales.

Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta aplicación requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real actualización en ambos sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones globales es una tarea difícil.
Los clientes manipulan el estado compartido a través de objetos que se ejecutan en servidores entre los que se reparte el trabajo. Uno de los beneficios que provee el modelo objeto-por-cliente es la simplificación del desarrollo mediante la eliminación del acceso concurrente a los objetos; el estado que forma parte del objeto está protegido implícitamente. Sin embargo, no alivia todas las preocupaciones que trae la concurrencia. Para coordinar el acceso al estado que un proceso o servidor mantiene para compartir entre todos los objetos, basta con usar técnicas tradicionales de acceso .NET o Win32 (i.e. critical sections, mutexes, etc.). Pero, ¿qué mecanismo se usar para coordinar el acceso concurrente al estado compartido que reside en la base de datos? La respuesta es: Transacciones.

No hay comentarios:

Publicar un comentario