UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE INGENIERÍA INDUSTRIAL
CARRERA DE INGENIERÍA EN TELEINFORMÁTICA
CURSO:
9–1
PERIODO 2021-2022 CICLO II
MATERIA:
ARQUITECTURA CLIENTE SERVIDOR
TEMA:
TRANSACCIONES DISTRIBUIDAS
INTEGRANTES:
BAQUE BAJAÑA HUMBERTO DANIEL
BAQUE BAJAÑA IDANIA NOEMÍ
CIFUENTES TOMALÁ JIM JAVIER
JARRÍN SANTOS RONALD GEOVANNY
OBANDO HUAYAMAVE MARCELA YUSMEY
OCAÑA ROSERO EDUARDO JOSÉ
REINA VERA KAREN ALEJANDRA
RODRÍGUEZ CASTILLO KAREN BETZABE
SANTIANA BOZADA JEFFERSON GABRIEL
DOCENTE:
ING. ANGEL PLAZA VARGAS
GUAYAQUIL - ECUADOR
2022
Transacciones Distribuidas
1) Citar las dos reglas de operación de los candados en las transacciones.
Reglas en el bloqueo binario
T debe emitir BLOQUEAR(X) antes de que se realice cualquier operación
LEER_ELEMENTO(X) o ESCRIBIR_ELEMENTO(X) en T
T debe emitir DESBLOQUEAR(X) después de haber completado todas las operaciones
LEER_ELEMENTO(X) y ESCRIBIR_ELEMENTO(X) en T
T no emitirá BLOQUEAR(X) si ya bloqueó X (posee su candado)
T no emitirá DESBLOQUEAR(X) salvo si posee el bloqueo de X
o Sólo una transacción puede poseer el candado de X
o Dos transacciones no pueden tener acceso concurrente al mismo elemento.
Reglas en el bloqueo de modo múltiple
T debe emitir BLOQUEAR_LECTURA(X) o BLOQUEAR_ESCRITURA(X) antes de que se
realice cualquier operación LEER_ELEMENTO(X) en T
T debe emitir BLOQUEAR_ESCRITURA(X) antes de realizar cualquier
operación ESCRIBIR_ELEMENTO(X) en T
T debe emitir DESBLOQUEAR(X) una vez completadas todas las operaciones
LEER_ELEMENTO(X) y ESCRIBIR_ELEMENTO(X) de T
T no emitirá BLOQUEAR_LECTURA(X) si ya posee un candado de lectura (compartido) o
de escritura (exclusivo) para X *puede permitir excepciones*
T no emitirá BLOQUEAR_ESCRITURA(X) si ya posee un candado de lectura o de
escritura para el elemento X *esta regla puede permitir excepciones*
T no emitirá DESBLOQUEAR(X) salvo si posee un candado de lectura (compartido) o de
escritura (exclusivo) para X
2) ¿Qué pasa con un dato cuando se aborta una transacción?
Cuando se aborta la transacción se recorre el log para deshacer los cambios. Después
de una caída temporal, se debe recorrer el log. Si una transacción no ha escrito su
registro de fin, se aborta. Si lo ha escrito, se hacen los cambios pendientes.
3) Citar algunos ejemplos del uso de los servicios web.
Un ejemplo es un agente de reservación de viajes. Para viajar, muchas personas
realizan la reservación de vuelos, hoteles y alquiler de coches en línea por medio de
diferentes sitios web. Si cada uno de estos sitios web es para proporcionar una interfaz
de servicios web estándar, entonces un “servicio de agente de viajes” podría utilizar sus
operaciones para proporcionar a un cliente viajero una combinación de estos servicios.
Otro ejemplo de servicio web sería Amazon. La organización cuenta con una red de
tiendas online y sistemas de entrega. Proporciona un servicio web que solicita los
precios de los productos vendidos en línea a través de [Link]. El front-end o capa
de presentación puede estar en .Net o Java, pero cualquier lenguaje de programación
interactúa con el servicio web a su manera. Tiene lugar en una plataforma común.
4) Desarrollar un ejemplo de escritura prematura para una concurrencia.
Dos transacciones A y B sobre una cuenta.
Saldo inicial 100 Bs. A pone balance en 105, B en 110, son secuencialmente
equivalentes. B ejecuta después de A.
Si B aborta y después A, coloca 100 en balance.
Si A aborta y después B, coloca 105 en balance.
5) Indicar la razón principal por la que los servicios web son soportados
por el TCP.
Los servicios web se pueden utilizar sobre cualquier protocolo, sin embargo, TCP es el
más común. Se utiliza con HTTP sobre TCP en el puerto de red 80, dado que las
organizaciones protegen sus redes mediante firewalls (que filtran y bloquean gran parte
del tráfico de Internet), cierran casi todos los puertos TCP salvo el 80, que es,
precisamente, el que usan los navegadores web. Los servicios Web usan este puerto
porque no son bloqueados.
6) Explicar el caso de una lectura sucia en una transacción.
El problema de lecturas sucias ocurre cuando una transacción exitosa lee datos que han
sido afectados por una transacción abortada. Una solución a este problema es retrasar
la decisión de declarar exitosa una transacción hasta que todas las transacciones
relacionadas sean exitosas.
7) ¿Por qué el "acoplamiento débil" es una característica deseada en los
servicios web?
Porque intercambian información entre sí mediante el uso de estándares y lenguajes de
comunicación Web universales, con el propósito de reducir el riesgo, para que un
servicio web tenga un efecto en cadena sobre otros servicios, logrando un interés en la
articulación flexible en los sistemas distribuidos, que se refiere a minimizar las
dependencias entre servicios, con el fin de tener una arquitectura subyacente flexible.
8) Describir un ejemplo de transacción anidada
BEGIN TRAN
-- Primer BEGIN TRAN y ahora @@TRANCOUNT = 1
BEGIN TRAN
-- Ahora @@TRANCOUNT = 2
COMMIT TRAN
-- Volvemos a @@TRANCOUNT = 1
-- Pero no se guarda nada ni se hacen efectivos los posibles cambios
COMMIT TRAN
-- Por fin @@TRANCOUNT = 0
-- Si hubiera cambios pendientes se llevan a la base de datos
-- Y volvemos a un estado normal con la transacción acabada
CREATE TABLE Tabla1 (Columna1 varchar(50))
GO
BEGIN TRAN
INSERT INTO Tabla1 VALUES ('Primer valor')
SAVE TRAN Punto1
INSERT INTO Tabla1 VALUES ('Segundo valor')
ROLLBACK TRAN Punto1
INSERT INTO Tabla1 VALUES ('Tercer valor')
COMMIT TRAN
SELECT * FROM Tabla1
Columna1
--------------------------------------------------
Primer valor
Tercer valor
(2 filas afectadas)
Un ROLLBACK a un SAVE TRAN no deshace la transacción en curso ni modifica
@@TRANCOUNT, simplemente cancela lo ocurrido desde el 'SAVE TRAN nombre' hasta
su 'ROLLBACK TRAN nombre'
9) Describir un ejemplo de transacción distribuida
Transacciones para SQL Managed Instance
Las transacciones distribuidas se admiten entre bases de datos dentro de varias
instancias. Cuando las transacciones cruzan los límites de las instancias administradas,
las instancias participantes deben estar en una relación de comunicación y seguridad
mutua. Esto se hace mediante la creación de un grupo de confianza del servidor,
operación que se puede realizar mediante Azure Portal, Azure PowerShell o la CLI de
Azure. Si las instancias no están en la misma red virtual, es necesario configurar el
emparejamiento de red virtual y las reglas de entrada y salida del grupo de seguridad
de red deben permitir los puertos 5024 y 11000-12000 en todas las redes virtuales que
participan.
10) ¿Cuál es la función de los candados en una transacción?
La función de los candados es la de sincronizar el acceso a los elementos de la base de
datos por parte de transacciones concurrentes.