sistemas distribuidos

25
SISTEMAS DISTRIBUIDOS

Upload: mayumi-alru

Post on 10-Nov-2015

220 views

Category:

Documents


0 download

DESCRIPTION

unidades

TRANSCRIPT

Sistemas distribuidos

Sistemas distribuidosTransacciones DistribuidasDefinicin:

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).

Unatransaccin distribuidaes 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 partede una transaccin distribuida necesitan podercomunicarse con otros para coordinar sus accionescuando la transaccin hace Commits, cmo lo hace?, puesse da de la siguiente manera:1. Un cliente comienza la transaccin enviando unrequerimiento "abreTransaccin" a un coordinador enalgn 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 elcoordinador 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 conel coordinador para llevar adelante el protocolo decommit de la transaccin.Durante el progreso de la transaccin, el coordinador registra los participantes y stos registran al coordinador.

Conceptos Bsicos

Elsistema 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.

Unadministrador 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.

Unaunidad 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.

Lafragmentacin de datosconsiste 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.

Lareplicacin de datosconsiste 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(restrictedoread-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 .

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:

VentajasLamodularidad, 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 mseconmicoagregar una nueva computadora ms pequea que actualizar una computadora nica y centralizada que sea ms poderosa.

Lasencillez, los sistemas distribuidos se pueden adecuar de una manera ms sencilla a las estructuras de la organizacin de los usuarios.Laautonoma 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.

Ladisponibilidad. 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.

DesventajasElrendimiento, 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.

Laconfiabilidad. 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.

Elcoste. 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.

Elprocesamientode 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.Laseguridad. 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.Laintegridad(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 RMICapa de Aplicacin:Implementacin real de las aplicaciones cliente y servidor.Llamadas a alto nivel para acceder y exportar objetos 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 RMICapa 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 actancomo representantes de los objetos remotos ante sus clientes.El esqueleto es responsable de despachar la invocacin alobjeto remoto.

Arquitectura RMICapa 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 RMIServidor.- 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 RMIPor 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 RMIHacer parte del estndar del lenguaje java.Aprovecha las ventajas del lenguaje javaLos detalles de comunicacin son transparentes para el programadorPermite el desarrollo rpido y fcil de objetos distribuidosEs una plataforma amigable para empezar en el rea de aplicaciones distribuidas

Desventajas de RMINo permiten la fcil integracin con sistemas heredadosNo es rpidoTiene 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.