Está en la página 1de 21

Sistemas Distribuidos Sistemas Distribuidos

Por: Mariela Curiel Basado en los textos : Sistemas Distribuidos Conceptos y Diseo G. Coulouris, J. Dollimore, TimKinberg

Definiciones Ejemplos Desafos en el diseo de sistemas distribuidos Modelos Arquitectnicos Modelos fundamentales para describir sistemas distribuidos

Definiciones
``Se define un sistema distribuido como aquel en el que los componentes de hardware y software, localizados en computadores unidos mediante una red, comunican y coordinan sus acciones slo mediante el paso de mensajes, (c,d,k, 2001)

Definicin
Esta definicin tiene las siguientes consecuencias:
? Concurrencia ? Inexistencia ? Fallos

de un reloj global

Independientes

Definiciones
``Un sistema distribuido se compone de un grupo de computadores autnomos, enlazados mediante una red y equipados con un software de sistemas distribuidos. Este software permite que los computadores coordinen sus actividades y compartan recursos.

Definiciones
Los usuarios de un sistema distribuido bien diseado deberan percibir un sistema de computacin nico e integrado, aun cuando las mquinas estn dispersas geogrficamente (c,d,k, 1998)

Definiciones
``Un sistema distribuido es un grupo de computadores independientes que son percibidas por los usuarios como un nico computador, (tanenbaum, 1995)

Ejemplos
Internet Intranets Computacin Mvil

Desafos
Heterogeneidad Extensibilidad Seguridad Escalabilidad Tolerancia a Fallas Concurrencia Transparencia

Desafos: Heterogeneidad
La heterogeneidad se aplica en los siguientes elementos:
? Redes ? Hardware ? Sistemas

de computadores operativos de programacin de diferentes

? Lenguajes

? Implementaciones

desarrolladores

Desafos: Heterogeneidad
Middleware: es el estrato de software que provee una abstraccin de programacin, as como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programacin. Ejem: Corba, Java RMI

Desafos: Heterogeneidad
Heterogeneidad y cdigo mvil
? Cdigo

Mvil: cdigo que puede enviarse desde un computador a otro y ejecutarse en este ltimo. concepto de mquina virtual ofrece un modo de crear cdigo ejecutable sobre cualquier hardware

? El

Desafos: Extensibilidad
Es la caracterstica que determina si el sistema puede extenderse de varias maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones de hardware o de software. Para lograr la extensibilidad es imprescindible que las interfaces clave sean publicadas.

Desafos: Extensibilidad
Los Sistemas Distribuidos Abiertos pueden extenderse a nivel de hardware mediante la inclusin de computadoras a la red y a nivel de software por la introduccin de nuevos servicios y la reimplementacin de los antiguos. Otro beneficio de los sistemas abiertos es su independencia de proveedores concretos.

Desafos: Seguridad
La seguridad tiene tres componentes:
Confidencialidad: proteccin contra individuos no autorizados Integridad: proteccin contra la alteracin o corrupcin Disponibilidad: proteccin contra la interferencia que impide el acceso a los recursos

Desafos: Seguridad
Existen dos desafos que no han sido resueltos en su totalidad:
? Ataques ? Seguridad

de denegacin de servicio del cdigo mvil

Desafos: Escalabilidad
Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el nmero de recursos y en el nmero de usuarios. El diseo de SD escalables presenta los siguientes retos: Control de costo de los recursos fsicos : para que un sistema con n usuarios sea escalable, la cantidad de recursos fsicos necesarios para soportarlo debera ser O(n).

Desafos: Escalabilidad
Controlar la degradacin del rendimiento: Ejm: Los algoritmos que emplean estructuras jerrquicas se comportan mejor frente al crecimiento de la escala, que los algoritmos que emplean estructuras lineales. Evitar cuellos de botella: los algoritmos deberan ser descentralizados .

Desafos: Escalabilidad
Prevenir el desbordamiento de los recursos de software

Desafos: Tratamiento de Fallos


Deteccin de fallos: Ejem. Se pueden utilizar sumas de comprobacin (checksums) para detectar datos corruptos en un mensaje. Enmarascamiento de fallos: Ejem.
? Los ? Replicar

mensajes pueden retransmitirse los datos

Desafos: Tratamiento de Fallos


Tolerancia de fallos: los programas clientes de los servicios pueden disearse para tolerar ciertos fallos. Esto implica que los usuarios tendrn tambin que tolerarlos. Recuperacin de fallos: implica el diseo de software en el que, tras una cada del servidor, el estado de los datos puede reponerse o retractarse (rollback) a una situacin anterior. Redundancia: emplear componentes redundantes.

Desafos: Concurrencia
Existe la posibilidad de acceso concurrente a un mismo recurso.La concurrencia en los servidores se puede lograr a travs de threads. Cada objeto que represente un recurso compartido debe responzabilizarse de garantizar que opera correctamente en un entorno concurrente. Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes.

Desafos:Transparencia
Transparencia de acceso: permite acceder a los recursos locales y remotos empleando operaciones idnticas. Transparencia de ubicacin: permite acceder a los recursos sin conocer su localizacin. Transparencia de concurrencia: permite que varios procesos operen concurrentemente sobre recursos compartidos sin interferencia mutua.

Desafos:Transparencia
Transparencia de replicacin: permite replicar los recursos sin que los usuarios y los programadores necesiten su conocimiento. Transparencia frente a fallos: permite ocultar fallos. Transparencia de movilidad: permite la reubicacin de recursos y clientes en un sistema sin afectar la operacin de los usuarios y los programas.

Desafos:Transparencia
Transparencia de rendimiento: permite reconfigurar el sistema para mejorar el desempeo segn vare su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamao sin cambiar la estructura del sistema o los algoritmos de aplicacin.

Modelos arquitectnicos
Modelo Arquitectnico de un SD: trata sobre la colocacin de sus partes y las relaciones entre ellas. Ejem: modelo cliente-servidor y el modelo de procesos de igual a igual (peerto-peer) Diferentes modelos arquitectnicos:
Capas de Software Arquitecturas de Sistema ? Interfaces y Objetos
? ?

Capas de Software
El trmino arquitectura de software se refera inicialmente a la estructuracin del software como capas en un nico computador. Ms recientemente las capas son uno o varios procesos, localizados en el mismo o diferentes computadores, que ofrecen y solicitan servicios.

Capas de Software
Aplicacin de servicios

Middleware

Sistema Operativo

Plataforma: estas capas ms bajas proporcionan servicio a las superiores y su implementacin es dependiente de cada computador.
Plataforma

Computador y Hw. de red

Capas de Software
Aplicacin de servicios

Capas de Software: Middleware


El middleware se ocupa de proporcionar bloques tiles para la construccin de componentes de software que puedan trabajar con otros en un sistema distribuido. En particular mejora el nivel de las actividades de comunicacin de los P. de aplicacin soportando abstracciones como: llamadas a procedimientos remotos, comunicacin entre un grupo de procesos, etc.

Middleware

Sistema Operativo Computador y Hw. de red

Middleware:es una capa de software cuyo propsito es enmascarar la heterogeneidad y proporcionar un modelo de programacin conveniente para los programadores de aplicaciones

Capas de Software: Middleware


Ejem: Sun RPC (llamadas a procedimientos remotos), CORBA (middleware orientado a objeto), Java RMI (invocacin de objetos remotos en Java), DCOM (Modelo comn de objetos distribuidos de Microsoft)

Capas de Software: Middleware


El middleware tambin puede proporcionar otros servicios, aparte de la comunicacin, para su uso en programas de aplicacin. Por ejemplo: gestin de nombres, seguridad, almacenamiento persistente, etc.

Arquitecturas de Sistema
Modelo Cliente-Servidor Servicios proporcionados por mltiples servidores Servidores proxy y caches Procesos peer-to-peer

Modelo Cliente-Servidor
Cliente
Invocacin Resultado

Servidor
Resultado

Servidor

Invocacin

Cliente

Proceso Computador

- El servidor puede o no estar en la misma mquina del cliente - Tanto servidores como clientes pueden ser iterativos o concurrentes

Servicios proporcionados por mltiples servidores


Servidor Cliente Servidor Cliente Servidor

Servidores Proxy y Caches


Cliente Servidor Proxy Cliente Servidor Servidor Web Proxy Servidor Servidor Web Proxy

servicio

-Los servidores pueden dividir el conjunto de objetos en los que est basado el servicio y distriburselos entre ellos mismos. - Pueden mantener rplicas de los objetos en cada mquina.

-Un cache es un almacn de objetos de datos utilizados recientemente. -Los caches pueden estar ubicados en los clientes o en un servidor Proxy que se puede compartir desde varios clientes. -El propsito de los servidores proxy es incrementar la disponibilidad y las prestacionesdel servicio, reduciendo la carga en las redes de rea Amplia y en los servidores WEB.

Procesos Peer-to-Peer
Servidor Proxy Aplicacin Cdigo de Coord. Servidor Proxy Aplicacin Cdigo de Coord.

Interfaces y Objetos
Una interfaz de un proceso es la especificacin del conjunto de funciones que se pueden invocar sobre l. En lenguajes orientados a objetos, los procesos distribuidos pueden ser construidos de una forma ms orientada al objeto. Las referencias a estos objetos se pasan a otros procesos para que se pueda acceder a sus mtodos de forma remota. Esta es la aproximacin adoptada por CORBA y Java RMI.

Servidor Proxy Aplicacin Cdigo de Coord.

Todos los procesos desempean tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cmputo sin distincin entre clientes y servidores Los procesos pares mantienen la consistencia de los recursos y sincroniza las acciones a nivel de aplicacin.

Otros Modelos Arquitectnicos


Cdigo Mvil Agente Mvil: es un programa que se traslada en la red, de un computador a otro, realizando una tarea para alguien. Ejem. Recolecta informacin. Computadores en red: se descarga desde un servidor remoto el sop y cualquier software de aplicacin necesario.

Otros Modelos Arquitectnicos


Clientes Ligeros: en el cliente slo se ejecuta una interfaz basada en ventanas, mientras que la aplicacin si se ejecuta en un servidor remoto, usualmente muy potente (multiprocesador, clusters, etc.)

10

Requisitos para el diseo de Arquitecturas Distribuidas


Rendimiento
Capacidad de respuesta: para obtener buenos tiempos de respuesta los sistemas deben estar compuestos por pocas capas de software y la cantidad de datos transferida debe ser pequea (ejem. Uso de proxys y caches) ? Productividad: trabajos/unidad de tiempo ? Balance de cargas: applets, varios servidores o computadores para alojar un nico servicio.
?

Requisitos para el diseo de Arquitecturas Distribuidas


Calidad de Servicio Algunas aplicaciones mantienen datos crticos en el tiempo, flujos de datos que precisan ser procesados o transferidos de un proceso a otro a una tasa prefijada. QoS es la capacidad de los sistemas para satisfacer dichos lmites.

Requisitos para el diseo de Arquitecturas Distribuidas


Calidad de Servicio El satisfacer tales exigencias depende de la disponibilidad de los recursos en los instantes adecuados. Cada recurso crtico debe reservarse para las aplicaciones que requieren QoS. Los administradores de los recursos deben proporcionar la garanta. Las solicitudes de reserva que no se puedan cumplir se rechazan.

Requisitos para el diseo de Arquitecturas Distribuidas


Aspectos de Fiabilidad (que el sistema funcione correctamente) Correctitud Tolerancia de fallos Seguridad:
? Confidencialidad ? Integridad ? Disponibilidad

11

Requisitos para el diseo de Arquitecturas Distribuidas


Tolerancia a Fallos: las aplicaciones estables deben continuar funcionando correctamente en presencia de fallos de hw, sw y redes.
? ?

Requisitos para el diseo de Arquitecturas Distribuidas


Seguridad: necesidad de ubicar datos y otros recursos sensibles slo en aquellos computadores equipados de un modo eficaz contra el ataque.

Se logra con redundancia Para hacer fiable un protocolo de comunicacin se emplean otras tcnicas. Ejem. Retransmitir el mensaje.

Modelos Fundamentales
Los modelos fundamentales estn implicados en una descripcin ms formal de las propiedades que son comunes en los modelos arquitectnicos. Ayudan a localizar los problemas clave para los diseadores de SD. Su propsito es especificar los problemas, dificultades y amenazas que deben superarse para desarrollar sistemas distribuidos fiables.

Modelos Fundamentales
Modelo de Interaccin: Trata sobre el rendimiento y sobre la dificultad de poner lmites temporales en un sistema distribuido Modelo de Fallos : intenta dar una especificacin precisa de los fallos que se pueden producir en procesos y en canales de comunicacin. Modelo de seguridad : posibles amenazas para los procesos y canales de comunicacin-

12

Modelo de Interaccin
Trata sobre el rendimiento y sobre la dificultad de poner lmites temporales en un sistema distribuido. El cmputo ocurre en procesos. Los procesos interactan a travs del paso de mensajes. En la comunicacin hay retrasos. El modelo estudia como afectan estos retrasos la coordinacin de los procesos.

Modelo de Interaccin
Rendimiento de los canales de comunicaciones:
Latencia:retardo entre el envo de un mensaje por un proceso y su recepcin por otro. ? Ancho de banda: cantidad total de informacin que se puede transmitir en un momento dado. ? Jitter o fluctuacin: variacin en el tiempo invertido en completar el reparto de una serie de mensajes.
?

Dos variantes del Modelo de Interaccin


Sistemas distribuidos sncronos
? El

Dos variantes del Modelo de Interaccin


Sistemas distribuidos sncronos
Es posible sugerir valores para esos lmites pero es difcil obtener valores realistas y dar garantas sobre los valores elegidos. ? Se pueden tener timeouts. Cuando expiran significa que ha fallado el proceso. ? Hay que garantizar ciclos suficientes de procesador, capacidad de red y proveer relojes con tasa de deriva limitadas.
?

tiempo de ejecucin de cada etapa de un proceso tiene lmites superior e inferior conocidos. ? Cada mensaje se recibe en un tiempo limitado conocido. ? Cada proceso tiene un reloj local cuya tasa de deriva sobre el tiempo real tiene un lmite conocido.

13

Dos variantes del Modelo de Interaccin


Sistemas distribuidos asncronos . Son aquellos donde no existen limitaciones sobre:
La velocidad de procesamiento Los retardos de transmisin de mensajes ? Las tasas de deriva del reloj.
? ?

Ordenamiento de Eventos
An cuando no hay relojes precisos la ejecucin de un sistema se puede describir en trminos de los eventos y su ordenacin. Ejemplo: 1. X enva un mensaje de reunin 2. Y y Z responden
x enva y lee y responde z lee x, y y enva otra respuesta.

Los sistemas reales son frecuentemente asncronos. Pero existen problemas que no pueden resolverse con este modelo.

Ordenamiento de Eventos
enva

Ordenamiento de Eventos
Tiempo lgico de Lamport
? Los

x y z A t1

m1 enva m2 Tiempo Fsico enva

mensajes se reciben despus de su envo x enva m1 antes que y reciba m1 Y enva m2 antes que x reciba m2 ? Las respuestas se envan despus que se reciben los mensajes Y recibe m1 antes de enviar m2

t2

t3

m3

m1 m2

- Si los relojes pudieran sincronizarse pudiera utilizarse el tiempo Asociado localmente a c/mensaje enviado. Los mensajes en A se Mostraran segn el ordenamiento temporal.

14

Ordenamiento de Eventos
x y z A
1
enva

Modelo de Fallos
Intenta dar una explicacin precisa de los fallos que se pueden producir en los procesos y en los canales de comunicacin para darnos una comprensin de sus efectos. Fallos por omisin
? De ? De

4
m1 enva

1 2

m2

Tiempo Fsico enva

t1
2

t2
m1 3
1

t3m3

m1 m2

procesos comunicaciones

m2 5

Modelo de Fallos
Fallos de procesos
Ruptura accidentada del procesamiento. Es deseable si el resto de los procesos que interactan con el proceso interrumpido, o bien funcionan correctamente o se detienen. El mtodo de deteccin de ruptura descansa en timeouts.

Modelo de Fallos
Fallos de procesos
Fail- Stop: es cuando el resto de los procesos puede detectar con certeza que cierto proceso interrumpio su ejecucin. Se puede detectar en un sistema sncrono por los timeouts.

15

Modelo de Fallos
Fallos por omisin de comunicaciones.
? Fallos ? Prdida ? Fallos

Modelo de Fallos
Fallos arbitrarios: cualquier tipo de error.
? Procesos:

por omisin de envos de mensajes entre los buffers por omisin de recepcin.
Proceso q Canal de comunicacin Recibe Fallos por omisin de recepcin

Proceso p Enva m Fallos por omisin de envo Buffer de Mensajes entrantes

se omiten pasos del procesamiento o se realizan pasos adicionales, no intencionados. ? Canales: se corrompe el contenido de un mensaje o se repiten mensajes. Estos fallos se pueden reconocer y ocultar o enmascarar.

Fallos por omisin del canal

Buffer de Mensajes salientes

Clase de Fallo
Fail-stop (fallo-parada) Proceso

Afecta a

Descripcin
El proceso para y deja de funcionar. Otros procesos pueden detectarlo. El proceso para y deja de funcionar. Otros procesos pueden no ser capaces de detectar su estado. Un mensaje en el buffer saliente nunca llega al buffer de mensajes entrantes El procesos enva pero el mensaje no se coloca en el buffer de mensajes salientes El mensaje llega a la cola de mensajes entrantes pero el proceso no lo recibe. Transmitir mensajes arbitrariamente, comenter omisiones, un proceso puede realizar un paso incorrecto o detenerse.

Ruptura

Proceso

Modelo de Fallos
Fallos de temporizacin
? Existen

Omisin

Canal

Omisin de Envo

Proceso

Omisin de recepcin

Proceso

Arbitrario (bizantino)

Proceso o Canal

en los SD sncronos donde se establecen lmites. Fallos de reloj y fallos de prestaciones. ? En un SDA un proceso pude terminar mas tarde pero no hay un fallo porque no se ha dado ningn tipo de garanta. ? Los SOP a tiempo real se disean con vistas a proporcionar garantas de temporizacin.

16

Modelo de Fallos
Clase de Fallo Reloj Afecta a Proceso Descripcin El reloj local del proceso excede el lmite de su tasa de deriva sobre el tiempo real. El proceso excede el lmite de ejecucin ? ?

Modelo de Fallos
Enmascaramiento de fallos
Ocultar el fallo Convertirlo en un tipo razonable

Prestaciones

Proceso

Fiabilidad y comunicacin uno a uno. El trmino comunicacin fiable se define en trminos de validez e integridad.
Validez: cualquier mensaje en el buffer de salida llega eventualmente al buffer de mensajes entrantes. ? Integridad: el mensaje recibido es idndico al enviado y no se reparten mensajes por duplicado
?

Prestaciones

Canal

La transmisin del mensaje toma ms tiempo del lmite permitido.

Modelo de Fallos
Amenazas de Integridad
Protocolos que retransmiten pero no usan nmeros de secuencia para evitar que el mismo mensaje llegue duplicado. ? Usuarios mal intencionados que insertan mensajes invlidos, repiten mensajes antiguos o modifican mensajes autenticos.
?

Modelo de Seguridad
La seguridad de un SD puede lograrse asegurando los procesos y los canales empleados para sus interacciones y protegiendo los objetos que se encapsulan contra el acceso no autorizado.

17

Modelo de Seguridad
Proteccin de Objetos
? Los

Modelo de Seguridad
Proteccin de Objetos
A cada invocacin y a cada resultado se le asocia la autoridad con que se ordena. Tal autoridad se denomina principal. ? El servidor es responsable de verificar la identidad del principal tras la invocacin y comprobar que dispone de los diferentes derechos para realizar operaciones sobre el objeto. ? El cliente puede comprobar la identidad del principal tras el servidor para asegurar que el resultado proviene del servidor requerido.
?

objetos pueden contener datos privados y pblicos o compartidos. ? Se otorgan derechos de acceso que especifican a quien se permite realizar ciertas operaciones sobre un objeto. Los usuarios son los principales beneficiarios de estos derechos de acceso.

Modelo de Seguridad
Derechos de acceso Objeto ?

Modelo de Seguridad
Asegurar procesos y sus interacciones
Cierto tipo de aplicaciones son ms propensas a los ataques. ? Para este tipo de aplicaciones probablemente habr ataques a los procesos de los que se componen tales aplicaciones y a los mensajes que viajan entre los procesos. ? Cmo podemos analizar estas amenazas para derrotarlas?

Invocacin Cliente Resultado Principal (usuario) Principal (servidor) Servidor

red

18

Modelo de Seguridad
Modelo de amenazas de seguridad El enemigo: es capaz de enviar cualquier mensaje a cualquier proceso y tambin de leer o copiar cualquier mensaje entre un par de procesos. El ataque puede venir de un computador legitimamente conectado o de una mquina no autorizada.
Copia de m

Modelo de Seguridad
Amenazas a procesos : cualquier proceso puede recibir mensajes de otro proceso y bien pudiera no ser capaz de identificar la identidad del emisor. Los protocolos incluyen la direccin IP del emisor, pero no es un problema generar un mensaje con una direccin falsa. No conocer cul es el origen del mensaje es una amenaza al correcto funcionamiento de clientes y servidores.

El enemigo

Proceso P

m
Proceso Q

Modelo de Seguridad
Amenazas a canales: un enemigo puede copiar, alterar o insertar mensajes segn viajen a travs de la red. Otra forma es recopilar mensajes para volver a enviarlo ms tarde, haciendo posible volver a enviar el mensaje ms de una vez.

Modelo de Seguridad
Cmo se pueden vencer las amenazas de seguridad? Criptografa y secretos compartidos Autenticacin Canales seguros

19

Modelo de Seguridad
Criptografa es la ciencia de mantener los mensajes seguros y la encriptacin es el proceso de transformar el mensaje de forma que quede oculto el contenido. Se emplean claves secretas que conoce el emisor y receptor.

Modelo de Seguridad
Autenticacin: probar la identidad probada por los emisores. La tcnica bsica consiste en incluir dentro del mensaje un fragmento encriptado que contenga suficiente informacin para garantizar la autenticidad del mensaje.

Modelo de Seguridad
Canales Seguros: para construirlos se emplean tcnicas de encriptamiento y autenticacin. Un canal seguro es un canal de comunicacin que conecta un par de procesos, cada uno de los cuales acta en representacin de un principal.

Modelo de Seguridad
Un canal seguro presenta las siguiente propiedades: Cada proceso conoce bien la identidad del principal en cuya representacin se ejecuta el otro proceso. Asegura privacidad e integridad (proteccin contra la manipulacin) Cada mensaje incluye un sello de carcter temporal, de tipo fisico o lgico, para prevenir el re-envo o la reordenacin de los mensajes. Ejemplo: SSL (Secure Sockets Layer)

20

Modelo de Seguridad
Otras posibilidades de amenaza del enemigo son: Denegacin de servicio Cdigo mvil: puede incluir cdigo que accede o modifica los recursos que estn legitimamente disponibles para los procesos del host pero no para el creador del cdigo.

21

También podría gustarte