Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definiciones
Sistemas Distribuidos Ejemplos
Desafíos en el diseño de sistemas
distribuidos
Por: Mariela Curiel
Basado en los textos : Modelos Arquitectónicos
Sistemas Distribuidos Conceptos y Diseño
G. Coulouris, J. Dollimore, TimKinberg Modelos fundamentales para describir
sistemas distribuidos
Definiciones Definición
``Se define un sistema distribuido como Esta definición tiene las siguientes
aquel en el que los componentes de consecuencias:
hardware y software, localizados en ? Concurrencia
computadores unidos mediante una ? Inexistencia de un reloj global
red, comunican y coordinan sus ? Fallos Independientes
acciones sólo mediante el paso de
mensajes´´, (c,d,k, 2001)
1
Definiciones Definiciones
``Un sistema distribuido se compone de Los usuarios de un sistema distribuido
un grupo de computadores autónomos, bien diseñado deberían percibir un
enlazados mediante una red y sistema de computación único e
equipados con un software de sistemas integrado, aun cuando las máquinas
distribuidos. Este software permite que estén dispersas geográficamente´´
los computadores coordinen sus (c,d,k, 1998)
actividades y compartan recursos.
Definiciones Ejemplos
``Un sistema distribuido es un grupo de Internet
computadores independientes que son Intranets
percibidas por los usuarios como un Computación Móvil
único computador´´, (tanenbaum, 1995)
2
Desafíos Desafíos: Heterogeneidad
Heterogeneidad Tolerancia a Fallas La heterogeneidad se aplica en los
Extensibilidad Concurrencia siguientes elementos:
Seguridad Transparencia ? Redes
Escalabilidad ? Hardware de computadores
? Sistemas operativos
? Lenguajes de programación
? Implementaciones de diferentes
desarrolladores
3
Desafíos: Extensibilidad Desafíos: Extensibilidad
Es la característica que determina si el Los Sistemas Distribuidos Abiertos pueden
sistema puede extenderse de varias extenderse a nivel de hardware mediante la
inclusión de computadoras a la red y a nivel
maneras. Un sistema puede ser abierto
de software por la introducción de nuevos
o cerrado con respecto a extensiones servicios y la reimplementación de los
de hardware o de software. antiguos.
Para lograr la extensibilidad es Otro beneficio de los sistemas abiertos es su
imprescindible que las interfaces clave independencia de proveedores concretos.
sean publicadas.
4
Desafíos: Escalabilidad Desafíos: Escalabilidad
Se dice que un sistema es escalable si Controlar la degradación del
conserva su efectividad cuando ocurre un
rendimiento: Ejm: Los algoritmos que
incremento significativo en el número de
recursos y en el número de usuarios. emplean estructuras jerárquicas se
El diseño de SD escalables presenta los comportan mejor frente al crecimiento
siguientes retos: de la escala, que los algoritmos que
Control de costo de los recursos físicos : para emplean estructuras lineales.
que un sistema con n usuarios sea escalable,
la cantidad de recursos físicos necesarios Evitar cuellos de botella: los algoritmos
para soportarlo debería ser O(n). deberían ser descentralizados.
Desafíos: Tratamiento de
Desafíos: Escalabilidad
Fallos
Prevenir el desbordamiento de los Detección de fallos: Ejem. Se pueden
recursos de software utilizar sumas de comprobación
(checksums) para detectar datos
corruptos en un mensaje.
Enmarascamiento de fallos: Ejem.
? Los mensajes pueden retransmitirse
? Replicar los datos
5
Desafíos: Tratamiento de
Desafíos: Concurrencia
Fallos
Existe la posibilidad de acceso concurrente a
Tolerancia de fallos: los programas clientes un mismo recurso.La concurrencia en los
de los servicios pueden diseñarse para servidores se puede lograr a través de
tolerar ciertos fallos. Esto implica que los threads.
usuarios tendrán también que tolerarlos. Cada objeto que represente un recurso
Recuperación de fallos: implica el diseño compartido debe responzabilizarse de
de software en el que, tras una caída del garantizar que opera correctamente en un
servidor, el estado de los datos puede entorno concurrente.
reponerse o retractarse (rollback) a una Para que un objeto sea seguro en un entorno
situación anterior. concurrente, sus operaciones deben
Redundancia: emplear componentes sincronizarse de forma que sus datos
redundantes. permanezcan consistentes.
Desafíos:Transparencia Desafíos:Transparencia
Transparencia de acceso: permite acceder a Transparencia de replicación: permite replicar
los recursos locales y remotos empleando los recursos sin que los usuarios y los
operaciones idénticas. programadores necesiten su conocimiento.
Transparencia de ubicación: permite acceder Transparencia frente a fallos: permite ocultar
a los recursos sin conocer su localización. fallos.
Transparencia de concurrencia: permite que Transparencia de movilidad: permite la
varios procesos operen concurrentemente reubicación de recursos y clientes en un
sobre recursos compartidos sin interferencia sistema sin afectar la operación de los
mutua. usuarios y los programas.
6
Desafíos:Transparencia Modelos arquitectónicos
Transparencia de rendimiento: permite Modelo Arquitectónico de un SD: trata sobre
reconfigurar el sistema para mejorar el la colocación de sus partes y las relaciones
entre ellas. Ejem: modelo cliente-servidor y el
desempeño según varíe su carga.
modelo de procesos de ¨igual a igual¨ (peer-
Transparencia al escalado: permite al to-peer)
sistema y a las aplicaciones expandirse Diferentes modelos arquitectónicos:
en tamaño sin cambiar la estructura del ? Capas de Software
sistema o los algoritmos de aplicación. ? Arquitecturas de Sistema
? Interfaces y Objetos
7
Capas de Software:
Capas de Software
Middleware
Middleware:es una El middleware se ocupa de proporcionar
Aplicación de capa de software cuyo bloques útiles para la construcción de
servicios
propósito es componentes de software que puedan
enmascarar la trabajar con otros en un sistema distribuido.
Middleware heterogeneidad y En particular mejora el nivel de las
proporcionar un modelo actividades de comunicación de los P. de
Sistema de programación aplicación soportando abstracciones como:
Operativo conveniente para los llamadas a procedimientos remotos,
Computador y programadores de comunicación entre un grupo de procesos,
Hw. de red aplicaciones
etc.
8
Arquitecturas de Sistema Modelo Cliente-Servidor
Invocación Resultado
Modelo Cliente-Servidor Cliente
Servidor
Proceso
Procesos peer-to-peer
Computador
9
Procesos Peer-to-Peer Interfaces y Objetos
Todos los procesos
Servidor Servidor desempeñan tareas Una interfaz de un proceso es la
Proxy
Aplicación Proxy
Aplicación semejantes, interactuando especificación del conjunto de funciones que
Código de Código de cooperativamente como
Coord. Coord. se pueden invocar sobre él.
iguales para realizar una
actividad distribuida o cómputo En lenguajes orientados a objetos, los
sin distinción entre clientes y procesos distribuidos pueden ser construidos
Servidor servidores de una forma más orientada al objeto. Las
Proxy
Aplicación Los procesos pares mantienen referencias a estos objetos se pasan a otros
Código de la consistencia de los recursos procesos para que se pueda acceder a sus
Coord.
y sincroniza las acciones a
nivel de aplicación. métodos de forma remota. Esta es la
aproximación adoptada por CORBA y Java
RMI.
10
Requisitos para el diseño de Requisitos para el diseño de
Arquitecturas Distribuidas Arquitecturas Distribuidas
Rendimiento Calidad de Servicio
? Capacidad de respuesta: para obtener buenos Algunas aplicaciones mantienen datos
tiempos de respuesta los sistemas deben estar críticos en el tiempo, flujos de datos que
compuestos por pocas capas de software y la
cantidad de datos transferida debe ser pequeña precisan ser procesados o transferidos
(ejem. Uso de proxys y caches) de un proceso a otro a una tasa pre-
? Productividad: trabajos/unidad de tiempo fijada.
? Balance de cargas: applets, varios servidores o QoS es la capacidad de los sistemas
computadores para alojar un único servicio. para satisfacer dichos límites.
11
Requisitos para el diseño de Requisitos para el diseño de
Arquitecturas Distribuidas Arquitecturas Distribuidas
Tolerancia a Fallos: las aplicaciones Seguridad: necesidad de ubicar datos y
estables deben continuar funcionando otros recursos sensibles sólo en
correctamente en presencia de fallos de aquellos computadores equipados de
hw, sw y redes. un modo eficaz contra el ataque.
? Se logra con redundancia
? Para hacer fiable un protocolo de
comunicación se emplean otras técnicas.
Ejem. Retransmitir el mensaje.
12
Modelo de Interacción Modelo de Interacción
Trata sobre el rendimiento y sobre la dificultad Rendimiento de los canales de
de poner límites temporales en un sistema comunicaciones:
distribuido. ? Latencia:retardo entre el envío de un mensaje por
El cómputo ocurre en procesos. Los un proceso y su recepción por otro.
procesos interactúan a través del paso de ? Ancho de banda: cantidad total de información
que se puede transmitir en un momento dado.
mensajes.
? Jitter o fluctuación: variación en el tiempo invertido
En la comunicación hay retrasos. El modelo en completar el reparto de una serie de mensajes.
estudia como afectan estos retrasos la
coordinación de los procesos.
13
Dos variantes del Modelo de
Ordenamiento de Eventos
Interacción
Sistemas distribuidos asíncronos . Son Aún cuando no hay relojes precisos la
aquellos donde no existen limitaciones sobre: ejecución de un sistema se puede describir
? La velocidad de procesamiento en términos de los eventos y su ordenación.
? Los retardos de transmisión de mensajes Ejemplo:
? Las tasas de deriva del reloj. 1. X envía un mensaje de reunión
14
Ordenamiento de Eventos Modelo de Fallos
envía 4
x 1 m1 Intenta dar una explicación precisa de los
envía 3
y
m2
Tiempo Físico fallos que se pueden producir en los
2
envía
procesos y en los canales de
z comunicación para darnos una
comprensión de sus efectos.
A m1 m2
t1 t2 t3m3 Fallos por omisión
1 2 ? De procesos
m1 3
4 ? De comunicaciones
m2 5
1
15
Modelo de Fallos Modelo de Fallos
Fallos por omisión de comunicaciones.
? Fallos por omisión de envíos Fallos arbitrarios: cualquier tipo de error.
? Procesos: se omiten pasos del procesamiento
? Pérdida de mensajes entre los buffers
o se realizan pasos adicionales, no
? Fallos por omisión de recepción.
intencionados.
? Canales: se corrompe el contenido de un
Proceso p Proceso q
Envía m
mensaje o se repiten mensajes. Estos fallos se
Recibe
Fallos por Canal de Fallos por
omisión de
comunicación omisión de pueden reconocer y ocultar o enmascarar.
envío recepción
Omisión de recepción Proceso El mensaje llega a la cola de tarde pero no hay un fallo porque no se ha
mensajes entrantes pero el dado ningún tipo de garantía.
proceso no lo recibe.
? Los SOP a tiempo real se diseñan con vistas a
Arbitrario (bizantino) Proceso o Canal Transmitir mensajes
arbitrariamente, comenter proporcionar garantías de temporización.
omisiones, un proceso puede
realizar un paso incorrecto o
detenerse.
16
Modelo de Fallos Modelo de Fallos
Clase de Fallo Afecta a Descripción
Enmascaramiento de fallos
Reloj Proceso El reloj local del proceso
? Ocultar el fallo
excede el límite de su tasa
de deriva sobre el tiempo ? Convertirlo en un tipo razonable
real.
Fiabilidad y comunicación uno a uno. El término
Prestaciones Proceso El proceso excede el
límite de ejecución comunicación fiable se define en términos de
validez e integridad.
Prestaciones Canal La transmisión del ? Validez: cualquier mensaje en el buffer de salida llega
mensaje toma más tiempo eventualmente al buffer de mensajes entrantes.
del límite permitido.
? Integridad: el mensaje recibido es idéndico al enviado y
no se reparten mensajes por duplicado
17
Modelo de Seguridad Modelo de Seguridad
Protección de Objetos Protección de Objetos
? A cada invocación y a cada resultado se le asocia
? Los objetos pueden contener datos la autoridad con que se ordena. Tal autoridad se
privados y públicos o compartidos. denomina principal.
? Se otorgan derechos de acceso que ? El servidor es responsable de verificar la identidad
del principal tras la invocación y comprobar que
especifican a quien se permite realizar dispone de los diferentes derechos para realizar
ciertas operaciones sobre un objeto. Los operaciones sobre el objeto.
usuarios son los principales beneficiarios ? El cliente puede comprobar la identidad del
de estos derechos de acceso. principal tras el servidor para asegurar que el
resultado proviene del servidor requerido.
18
Modelo de Seguridad Modelo de Seguridad
Modelo de amenazas de seguridad Amenazas a procesos : cualquier proceso
El enemigo: es capaz de enviar cualquier puede recibir mensajes de otro proceso y
mensaje a cualquier proceso y también de bien pudiera no ser capaz de identificar la
leer o copiar cualquier mensaje entre un par identidad del emisor. Los protocolos incluyen
de procesos. El ataque puede venir de un la dirección IP del emisor, pero no es un
computador legitimamente conectado o de problema generar un mensaje con una
una máquina no autorizada.
dirección falsa. No conocer cuál es el origen
del mensaje es una amenaza al correcto
Copia de m El enemigo
m´ funcionamiento de clientes y servidores.
Proceso P m Proceso Q
19
Modelo de Seguridad Modelo de Seguridad
Criptografía es la ciencia de mantener Autenticación: probar la identidad
los mensajes seguros y la encriptación probada por los emisores. La técnica
es el proceso de transformar el mensaje básica consiste en incluir dentro del
de forma que quede oculto el contenido. mensaje un fragmento encriptado que
Se emplean claves secretas que contenga suficiente información para
conoce el emisor y receptor. garantizar la autenticidad del mensaje.
20
Modelo de Seguridad
Otras posibilidades de amenaza del
enemigo son:
Denegación de servicio
Código móvil: puede incluir código que
accede o modifica los recursos que
están legitimamente disponibles para
los procesos del host pero no para el
creador del código.
21