Está en la página 1de 25

SISTEMAS

S
O
D
I
U
B
I
R
DIST

Transacciones Distribuidas
Definicin:
Una transaccin es una coleccin de acciones que
hacen transformaciones consistentes de los estados de
un sistema preservando la consistencia del sistema.
Una base de datos est en un estado consistente si
obedece todas las restricciones de integridad definidas
sobre ella. Los cambios de estado ocurren debido a
actualizaciones, inserciones, y supresiones de
informacin.
Por supuesto, se quiere asegurar que la base de datos
nunca entra en un estado de inconsistencia. Sin
embargo, durante la ejecucin de una transaccin, la
base de datos puede estar temporalmente en un estado
inconsistente. El punto importante aqu es asegurar que
la base de datos regresa a un estado consistente al fin
de la ejecucin de una transaccin.

Caractersticas:
1) Atmicas:
Se hace completa o no se hace
2) Consistentes:
Sus datos deben mantener la congruencia entre sus datos
3) Aisladas:
Las transacciones concurrentes no interfieren entre s.
4) Durables:
Una vez comprometida la transaccin, los cambios son
permanentes.

Propiedades de las transacciones (ACID)


Atomicidad: una transaccin es tratada como una unidad, esto es, o
se realizan todas las acciones de la transaccin o no se realiza
ninguna.
Consistencia: una transaccin debe llevar a una base de datos de un
estado consistente, a otro estado tambin consistente una vez ha
finalizado.
Aislamiento: una transaccin no puede revelar su resultado a otras
transacciones concurrentes antes de haber realizado su commit.
Durabilidad: propiedad de una transaccin que asegura que una vez
esta finalice correctamente, su resultado sea permanente y no pueda
ser eliminado de la base de datos (por ejemplo por algn fallo en el
sistema).

Una transaccin distribuida es aquella que involucra algn proceso en distintos sitios de la red. Llamaremos a estos
procesos los agentes de la transaccin, entonces una transaccin distribuida esta compuesta por varios agentes.
Para llevar a cabo una transaccin distribuida los agentes tienen que comunicarse a travs de mensajes en la red y se
debe garantizar la atomicidad de la transaccin.

Se usa el trmino transacciones distribuidas para referirse a transacciones planas o anidadas que acceden a objetos administrados por
mltiples servidores.

Que son Transacciones Distribuidas Planas?


En una transaccin plana, el cliente hace requerimientos a
ms de un servidor. Cada transaccin accede a los objetos
en los servidores secuencialmente.
El cliente de la transaccin plana espera completar todos sus
requerimientos antes de pasar a la prxima.

Que

son

Transacciones

Distribuidas

Anidadas?

En una transaccin anidada, la transaccin de mayor nivel


puede abrir subtransacciones y, a su vez cada subtransaccin
puede abrir otras en niveles ms bajos de anidamiento.

Una transaccin anidada dentro de otra transaccin conserva las mismas propiedades que la de sus padres, esto
implica, que puede contener as mismo transacciones dentro de ella. Existen restricciones obvias en una transaccin
anidada: debe empezar despus que su padre y debe terminar antes que l. Ms an, el commit de una
subtransaccin es condicional al commit de su padre, en otras palabras, si el padre de una o varias transacciones
aborta, las subtransacciones hijas tambin sern abortadas.
Las transacciones anidadas proporcionan un nivel ms alto de concurrencia entre transacciones. Ya que una
transaccin consiste de varios transacciones, es posible tener ms concurrencia dentro de una sola transaccin. As
tambin, es posible recuperarse de fallas de manera independiente de cada subtransaccin. Esto limita el dao a un
parte ms pequea de la transaccin, haciendo que costo de la recuperacin sea menor.

Que funcin cumple el Coordinador de una Transaccin Distribuida?

El coordinador se encuentra en uno de los servidores. Los servidores que ejecutan requerimientos y que son parte de
una transaccin distribuida necesitan poder comunicarse con otros para coordinar sus acciones cuando la transaccin
hace Commits, cmo lo hace?, pues se da de la siguiente manera:
1. Un cliente comienza la transaccin enviando un requerimiento "abreTransaccin" a un coordinador en algn servidor.
2. El coordinador que es contactado lleva adelante la "abreTransaccin" y retorna un identificador al cliente (ste debe
ser nico).
3. El coordinador que abre la transaccin se convierte en el coordinador para la transaccin distribuida.
Cada uno de los servidores que administra un objeto accedido por la transaccin es un participante en la transaccin,
se llamar participante. Los participantes son responsables en la cooperacin con el coordinador para llevar adelante el
protocolo de commit de la transaccin.
Durante el progreso de la transaccin, el coordinador registra los participantes y stos registran al coordinador.

Conceptos Bsicos

El sistema de administracin de Base de Datos Distribuida (DDBMS), esta formado por las transacciones y los administradores de
base de datos distribuidos de todas las computadoras.

Un administrador de de transacciones distribuidas (DTM) es un programa que recibe solicitudes de procesamiento de los
programas de consulta o de transacciones y a su vez las traduce en acciones para los administradores de la base de datos

Sistema de Base de Datos Distribuida (SBDD) es un sistema en el cual mltiples sitios de bases de datos estn ligados por un
sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede acceder a los datos en cualquier parte de la red
exactamente como si los datos estuvieran almacenados en su sitio propio.

Una unidad distribuida del trabajo (DUOW) , tambin conocida como actualizacin del multisite, es una funcin que permite a sus
usuarios poner al da datos en servidores alejados de la base de datos, garantizndose la integridad de los mismos.

La fragmentacin de datos consiste en subdividir las relaciones y distribuirlas entre los sitios de la red, tiene como objetivo buscar
formas alternativas de dividir una las instancias (tablas) de relaciones en otras ms pequeas.
La replicacin de datos consiste en que cada nodo debe tener su copia completa de la base de datos

Clasificacin de las transacciones


.
Las transacciones han sido clasificadas de acuerdo a diferentes criterios:

Duracin:
On-line: caracterizadas por un tiempo de respuesta y ejecucin muy corto y por un acceso a una pequea porcin de la base de
datos. Este tipo de transaccin cubre la mayora de las transacciones de los programas actuales.
Batch: caracterizadas por un gran tiempo de ejecucin (del orden de los minutos, horas o das) y por acceder a grandes
volmenes de datos.
Organizacin de Lectura/Escritura:
General: las lecturas y escrituras se realizan sin orden determinado.
Dos-pasos (two-step): si todas las lecturas son realizadas antes de las escrituras.
Restringida (restricted o read-before-write): si la transaccin est restringida de forma que un dato debe ser ledo antes de poder
ser actualizado (escrito).
Restringida de dos pasos (restricted two-step): si es cumple las dos anteriores.
Accin: consistente en la ejecucin de parejas de operaciones atmicas <lectura,escritura>.
Estructura:
Transaccin plana (flat transaction): aquella transaccin que tiene un nico punto de inicio y un nico punto de terminacin.
Transacciones anidadas (nested transaction): permite que una transaccin incluya otras transacciones con sus propios

Tipos de Transacciones

Las transacciones pueden pertenecer a varias clases. Aun cuando los problemas fundamentales son los mismos para las
diferentes clases, los algoritmos y tcnicas que se usan para tratarlas pueden ser considerablemente diferentes. Las
transacciones pueden ser agrupadas a lo largo de las siguientes dimensiones:

Ventajas
La modularidad, los sistemas distribuidos pueden variar su tamao de un modo ms sencillo. Se pueden agregar
computadoras adicionales a la red conforme aumentan el nmero de usuarios y su carga de procesamiento. Despus, si
la carga de trabajo se reduce, el tamao de la red tambin puede reducirse.
A menudo es ms fcil y ms econmico agregar una nueva computadora ms pequea que actualizar una computadora
nica y centralizada que sea ms poderosa.
La sencillez, los sistemas distribuidos se pueden adecuar de una manera ms sencilla a las estructuras de la
organizacin de los usuarios.
La autonoma local de los datos. Los datos se pueden colocar fsicamente en el lugar donde se accede a ellos ms
frecuentemente, haciendo que los usuarios tengan control local de los datos con los que actan (un departamento
puede controlar los datos que le pertenecen) permitiendo a los usuarios aplicar polticas locales respecto del tipo de
accesos a sus datos.

LA DISPONIBILIDAD. SI SE PRODUCE UN FALLO EN UNA LOCALIDAD DE UN SISTEMA


DISTRIBUIDO, ES POSIBLE QUE LAS DEMS LOCALIDADES PUEDAN SEGUIR
TRABAJANDO. EN PARTICULAR, SI LOS DATOS SE REPITEN EN VARIAS
LOCALIDADES, UNA TRANSACCIN QUE REQUIERE UN DATO ESPECFICO PUEDE
ENCONTRARLO EN MS DE UNA LOCALIDAD. AS, EL FALLO DE UNA LOCALIDAD NO
IMPLICA NECESARIAMENTE LA DESACTIVACIN DEL SISTEMA. LA DISPONIBILIDAD ES
FUNDAMENTAL PARA LOS SISTEMAS DE BASES DE DATOS QUE SE UTILIZAN EN
APLICACIONES DE TIEMPO REAL.

PROCESAMIENTO CENTRALIZADO. LOS DATOS GENERALMENTE SE UBICAN CERCA


DEL SITIO CON MAYOR DEMANDA, TAMBIN LOS SISTEMAS TRABAJAN EN
PARALELO, LO CUAL PERMITE BALANCEAR LA CARGA EN LOS SERVIDORES. VARIAS
COMPUTADORAS OPERANDO EN FORMA SIMULTNEA PUEDEN ENTREGAR MS
VOLUMEN DE PROCESAMIENTO QUE UNA SOLA COMPUTADORA.

CONFIABILIDAD.

CUANDO FALLA UNA COMPUTADORA, SE PUEDEN OBTENER LOS


DATOS EXTRADOS DE OTRAS COMPUTADORAS. LOS USUARIOS NO DEPENDEN DE
LA DISPONIBILIDAD DE UNA SOLA FUENTE PARA SUS DATOS.

Desventajas
El rendimiento, puede ser peor para el procesamiento distribuido que para el procesamiento centralizado. Depende de
la naturaleza de la carga de trabajo, la red, el DDBMS y las estrategias utilizadas de concurrencia y de falla, as como las
ventajas del acceso local a los datos y de los procesadores mltiples, ya que stos pueden ser abrumados por las tareas
de coordinacin y de control requeridas. Tal situacin es probable cuando la carga de trabajo necesita un gran nmero de
actualizaciones concurrentes sobre datos duplicados, y que deben estar muy distribuidos.
La confiabilidad. El procesamiento de base de datos distribuida puede resultar menos confiable que el procesamiento
centralizado y un sistema distribuido puede estar menos disponible que uno centralizado. Esto depender de los
parmetros mencionados en el apartado anterior.
Complejidad, a menudo se traduce en altos gastos de construccin y mantenimiento. Ya que existen ms componentes
de hardware, hay ms cantidad de cosas por aprender y ms interfaces susceptibles de fallar. Se debe asegurar que la
base de datos sea transparente, se debe lidiar con varios sistemas diferentes que pueden presentar dificultades nicas.
El coste. El control de concurrencia y recuperacin de fallos puede convertirse en algo complicado y difcil de
implementar, puede empujar a una mayor carga sobre programadores y personal de operaciones y quiz se requiera de
personal ms experimentado y ms costoso.

EL PROCESAMIENTO DE

BASES DE DATOS DISTRIBUIDO ES DIFCIL DE CONTROLAR. UNA


COMPUTADORA CENTRALIZADA RESIDE EN UN ENTORNO CONTROLADO, CON PERSONAL DE
OPERACIONES QUE SUPERVISA MUY DE CERCA, Y LAS ACTIVIDADES DE PROCESAMIENTO
PUEDEN SER VIGILADAS, AUNQUE A VECES CON DIFICULTAD. EN UN SISTEMA DISTRIBUIDO, LAS
COMPUTADORAS DE PROCESO, RESIDEN MUCHAS VECES EN LAS REAS DE TRABAJO DE LOS
USUARIOS. EN OCASIONES EL ACCESO FSICO NO EST CONTROLADO, Y LOS PROCEDIMIENTOS
OPERATIVOS SON DEMASIADO SUAVES Y EFECTUADOS POR PERSONAS QUE TIENEN ESCASA
APRECIACIN O COMPRENSIN SOBRE SU IMPORTANCIA. EN SISTEMAS CENTRALIZADOS, EN
CASO DE UN DESASTRE O CATSTROFE, LA RECUPERACIN PUEDE SER MS DIFCIL DE
SINCRONIZAR.

LA SEGURIDAD. DADO QUE LOS DATOS RESIDEN EN MUCHOS NODOS DIFERENTES Y SE PUEDEN
CONSULTAR POR NODOS DIVERSOS DE LA RED, LA PROBABILIDAD DE VIOLACIONES DE
SEGURIDAD ES CRECIENTE SI NO SE TOMAN LAS PRECAUCIONES DEBIDAS.

LA INTEGRIDAD (CONSISTENCIA, VALIDEZ Y EXACTITUD DE LA INFORMACIN). SE VUELVE DIFCIL


MANTENER LA INTEGRIDAD, APLICAR LAS REGLAS DE INTEGRIDAD A TRAVS DE LA RED PUEDE
SER MUY CARO EN TRMINOS DE TRANSMISIN DE DATOS.

CARENCIA DE ESTNDARES. AN NO EXISTEN HERRAMIENTAS O METODOLOGAS QUE AYUDEN A


LOS USUARIOS A CONVERTIR UN DBMS CENTRALIZADO EN UN DBMS DISTRIBUIDO.

RMI ( REMOTE METHOD INVOCATION )


ES UN MECANISMO QUE PERMITE REALIZAR LLAMADAS A MTODOS DE OBJETOS
REMOTOS SITUADOS EN DISTINTAS MQUINAS VIRTUALES DE JAVA, COMPARTIENDO AS
RECURSOS Y CARGA DE PROCESAMIENTO A TRAVS DE VARIOS SISTEMAS. POR MEDIO
DE RMI, UN PROGRAMA JAVA PUEDE EXPORTAR UN OBJETO, LO QUE SIGNIFICA QUE STE
QUEDA ACCESIBLE A TRAVS DE LA RED Y EL PROGRAMA PERMANECE A LA ESPERA DE
PETICIONES EN UN PUERTO TCP. A PARTIR DE ESTE MOMENTO, UN CLIENTE PUEDE
CONECTARSE E INVOCAR LOS MTODOS PROPORCIONADOS POR EL OBJETO.

ARQUITECTURA
RMI

ARQUITECTURA
RMI
CAPA DE APLICACIN:

o IMPLEMENTACIN REAL DE LAS APLICACIONES CLIENTE Y SERVIDOR.


o LLAMADAS A ALTO NIVEL PARA ACCEDER Y EXPORTAR OBJETOS
o
o

REMOTOS.
SE DECLARAN MTODOS EN UNA INTERFAZ QUE HEREDE DE
JAVA.RMI.REMOTE.
UNA VEZ QUE LOS MTODOS HAN SIDO IMPLEMENTADOS, EL OBJETO
DEBE SER EXPORTADO.

DE

FORMA IMPLCITA: SI EL OBJETO HEREDA DE LA CLASE


UNICASTREMOTEOBJECT (PAQUETE JAVA.RMI.SERVER)
DE FORMA EXPLCITA: CON UNA LLAMADA AL MTODO EXPORTOBJECT () DEL
MISMO PAQUETE.

ARQUITECTURA RMI
CAPA PROXY, O CAPA STUB SKELETON:
ESTA CAPA ES LA QUE INTERACTA DIRECTAMENTE CON LA CAPA DE
APLICACIN. TODAS LAS LLAMADAS A OBJETOS REMOTOS Y ACCIONES
JUNTO CON SUS PARMETROS Y RETORNO DE OBJETOS TIENEN LUGAR
EN ESTA CAPA.

LOS CABOS (STUBS) FORMAN PARTE DE LAS REFERENCIAS Y ACTAN


COMO REPRESENTANTES DE LOS OBJETOS REMOTOS ANTE SUS CLIENTES.
EL ESQUELETO ES RESPONSABLE DE DESPACHAR LA INVOCACIN AL
OBJETO REMOTO.

ARQUITECTURA
RMI
CAPA DE REFERENCIA REMOTA:
RESPONSABLE DEL MANEJO DE LA PARTE SEMNTICA DE LAS INVOCACIONES REMOTAS.
TAMBIN ES RESPONSABLE DE LA GESTIN DE LA REPLICACIN DE OBJETOS Y
REALIZACIN DE TAREAS ESPECFICAS DE LA IMPLEMENTACIN CON LOS OBJETOS
REMOTOS, COMO EL ESTABLECIMIENTO DE LAS PERSISTENCIAS SEMNTICAS Y
ESTRATEGIAS ADECUADAS PARA LA RECUPERACIN DE CONEXIONES PERDIDAS.
CAPA DE TRANSPORTE:
ES LA RESPONSABLE DE REALIZAR LAS CONEXIONES NECESARIAS Y MANEJO DEL
TRANSPORTE DE LOS DATOS DE UNA MQUINA A OTRA. EL PROTOCOLO DE TRANSPORTE
SUBYACENTE PARA RMI ES JRMP (JAVA REMOTE METHOD PROTOCOL), QUE SOLAMENTE
ES COMPRENDIDO POR PROGRAMAS JAVA.

ELEMENTOS
RMI
SERVIDOR.- UN PROGRAMA DE SERVIDOR TPICO CREA ALGUNOS OBJETOS
REMOTOS, HACE REFERENCIAS A ESTOS OBJETOS ACCESIBLES, Y ESPERA QUE
LOS CLIENTES INVOQUEN MTODOS EN ESTOS OBJETOS.
CLIENTE.- UN PROGRAMA CLIENTE TPICO OBTIENE UNA REFERENCIA REMOTA A
UNO O MS OBJETOS REMOTOS EN UN SERVIDOR Y LUEGO INVOCA MTODOS
SOBRE ELLOS.

FUNCIONALIDAD
RMI
POR MEDIO DE RMI, UN PROGRAMA JAVA PUEDE EXPORTAR UN OBJETO. A
PARTIR DE ESA OPERACIN ESTE OBJETO EST DISPONIBLE EN LA RED,
ESPERANDO CONEXIONES EN UN PUERTO TCP. UN CLIENTE PUEDE ENTONCES
CONECTARSE E INVOCAR MTODOS.

VENTAJAS DE
RMI
o HACER PARTE DEL ESTNDAR DEL LENGUAJE JAVA.
o APROVECHA LAS VENTAJAS DEL LENGUAJE JAVA
o LOS DETALLES DE COMUNICACIN SON TRANSPARENTES

PARA

EL

o PERMITE EL DESARROLLO RPIDO Y FCIL DE OBJETOS DISTRIBUIDOS


o ES UNA PLATAFORMA AMIGABLE PARA EMPEZAR EN EL REA

DE

PROGRAMADOR

APLICACIONES DISTRIBUIDAS

DESVENTAJAS DE RMI
o NO PERMITEN LA FCIL INTEGRACIN CON SISTEMAS HEREDADOS
o NO ES RPIDO
o TIENE ALGUNAS LIMITACIONES DEBIDO A SU ESTRECHA INTEGRACIN CON JAVA;
LA PRINCIPAL DE ELLAS ES QUE ESTA TECNOLOGA NO PERMITE LA INTERACCIN
CON APLICACIONES ESCRITAS EN OTRO LENGUAJE.