Want to create interactive content? It’s easy in Genially!
Retos de los Sistemas Distribuidos
Javeriana
Created on June 29, 2020
Principales Retos de los Sistemas Distribuidos
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Essential Map
View
Akihabara Map
View
Frayer Model
View
Create Your Story in Spanish
View
Microcourse: Key Skills for University
View
Microcourse: Learn Spanish
View
Choice Board Flipcards
Transcript
Otros retos
Interoperabilidad
Soporte a recursos compartidos
Portabilidad
Metas de Diseño de los Sistemas Distribuidos
Sistemas Abiertos
Extensibilidad
Acceso
Definición y Caracterización
Localización/Relocalización
Escalabilidad de Tamaño
Transparencia
Escalabilidad
Escalabilidad Geografica
Migración
Replicación y Concurrencia
Escalabilidad Administrativa
Ejemplos y Actividades Adicionales.
" Un sistema distribuido es una colección de computadoras independientes que dan al usuario la impresión de constituir un único sistema coherente"
" 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 solo mediante el paso de mensajes "
Van Steen & Tanenbaum
Coulouris G. et al
sites.google.com
Introducción a los Sistemas Distribuidos
Características
Colección de elementos autónomos
Un único Sistema Coherente
Un SD es coherente si este se comporta de acuerdo a las expectativas de los usuarios. Esforzarse en ofrecer un único sistema coherente trae compromisos (trade-off): se trata de un conjunto de nodos, redes, sistemas...en algún momento cualquiera de estos componentes puede fallar. Mientras unos componentes fallan, otros deben continuar trabajando, algunas fallas son difíciles de esconder.
- Los nodos pueden actuar de forma independiente unos de otros.
- Heterogeneidad en nodos, redes, SOP, etc.
- Inexistencia de un reloj global
- Fallos independientes
- Los nodos pueden entrar y salir del sistema.
Middleware
Un middleware es a un SD lo que el SOP es a un computador: un manejador de recursos que permite que las aplicaciones puedan compartir y desplegar recursos a lo largo de la red. Ofrece a las aplicaciones los siguientes servicios:
- Facilidades de comunicación entre aplicaciones
- Servicios de seguridad
- Contabilidad
- Enmascarar las fallas y recuperarse de ellas.
- Enmascara la heterogeneidad
Middleware: es el estrato de software que provee una abstracción de programación, así como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programación. Ejem: Corba, Java RMI, ODBC
Modelos Fundamentales
Modelos Fundamentales
- Modelo de Interacción: trata sobre el rendimiento y sobre la dificultad de poner límites temporales en un sistema distribuido
- Modelo de Fallos: intenta dar una especificación precisa de los fallos que se pueden producir en procesos y en canales de comunicación.
- Modelo de seguridad: posibles amenazas para los procesos y canales de comunicación
Modelo de Interacción
- El cómputo ocurre en procesos. Los procesos interactúan a través del paso de mensajes.
- En la comunicación hay retrasos. El modelo estudia cómo afectan estos retrasos la coordinación de los procesos.
Modelo de Interacción
Métricas
- Latencia: retardo entre el envío de un mensaje por un proceso y su recepción por otro.
- Ancho de banda: cantidad total de información que se puede transmitir en un momento dado.
- Jitter o fluctuación: variación en el tiempo invertido en completar el reparto de una serie de mensajes.
Modelo de Interacción
Relojes y eventos de temporización:
- Cada computador tiene su reloj local.
- Los relojes presentan desviaciones con respecto al tiempo perfecto, es lo que se denomina tasa de deriva del reloj.
- Aun si logran sincronizarse todos los relojes, despues de cierto tiempo las magnitudes comenzarán a variar y será necesario aplicar correcciones.
Dificultad de poner Límites Temporales
Dos variantes del Modelo de Interacción
Sistemas distribuidos síncronos:
- El tiempo de ejecución de cada etapa de un proceso tiene límites 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 límite conocido.
Dos variantes del Modelo de Interacción
Sistemas distribuidos síncronos
- Es posible sugerir valores para esos límites pero es difícil obtener valores realistas y dar garantías 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.
Dos variantes del Modelo de Interacción
Sistemas distribuidos asíncronos. Son aquellos donde no se pueden poner limites sobre:
- La velocidad de procesamiento
- Los retardos de transmisión de mensajes
- Las tasas de deriva del reloj.
Modelo de Fallos
- Fiabilidad de la comunicación uno a uno. El término comunicación fiable se define en términos de validez e integridad.
- Validez: cualquier mensaje en el buffer de salida llega eventualmente al buffer de mensajes entrantes.
- Integridad: el mensaje recibido es idéntico al enviado y no se reparten mensajes por duplicado
Modelo de Fallos
Intenta dar una explicación precisa de los fallos que se pueden producir en los procesos y en los canales de comunicación para darnos una comprensión de sus efectos.
Afecta a
Descripción
Clase de Fallo
El proceso para y deja de funcionar. Otros procesos pueden detectarlo.
Proceso
Fail-stop (fallo-parada)
El proceso para y deja de funcionar. Otros procesos pueden no ser capaces de detectar su estado. El proceso no realiza acciones incorrectas como resultado de la falla.
Ruptura
Proceso
Un mensaje en el buffer saliente nunca llega al buffer de mensajes entrantes. SE pierden mensajes entre dos computadoras
Omisión (fallas de red)
Canal
El proceso envía pero el mensaje no se coloca en el buffer de mensajes salientes (o el del sistem operativo o de la interfaz de red)
Proceso
Omisión de Envío
El mensaje llega a la cola de mensajes entrantes pero el proceso no lo recibe.
Proceso
Omisión de recepción
Transmitir mensajes arbitrariamente, alterar el contenido del mensaje, se reparten mensajes no existentes. Un proceso puede realizar un paso incorrecto.
Proceso o Canal
Arbitrario (bizantino)
Network partitioning failures: These are a more severe form of network failure, in which the network fragments into disconnected sub-networks, within which messages can be transmitted, but between which messages are lost. When a failure of this sort is repaired, one talks about merging the network partitions. Network partitioning failures are a common problem in modern distributed systems.
Modelo de Fallos (Resumen)
Procesos
Canales
Fail/stop
Proceso falla y otros lo pueden detectar
Ruptura
Proceso falla y otros no lo pueden detectar
omisión
Omisión
Omisión de envío o recepción, según el mensaje llegue o no al buffer de mensajes entrantes y salientes.
Un mensaje en el buffer saliente nunca llega al buffer de mensajes entrantes
Validez
Prestaciones
El proceso excede el límite de ejecución
La transmisión del mensaje toma más tiempo del límite permitido.
Temporización*
Reloj
El reloj local del proceso excede el límite de su tasa de deriva sobre el tiempo real.
Integridad
Bizantinos
Un proceso puede realizar un paso incorrecto o detenerse.
Transmitir mensajes arbitrariamente, alterar el contenido del mensaje, se reparten mensajes no existentes
Modelo de Seguridad
- Identifica posibles amenazas a procesos y canales de comunicación.
- Relacionadas con la Integridad
- Relacionadas con la Privacidad
Modelo de Seguridad
Amenazas a la Integridad
Duplican, corrompen, se inyectan mensajes adicionales.
Amenazas a la Privacidad
• Acceso no autorizado a objetos • Ataque a procesos • Ataque a las interacciones (privacidad del canal)
•Criptografía •Autenticación •Canales seguros
Soluciones
Falacias de la computación distribuida
Otros tipos de Escalabilidad
Por qué queremos escalar?
- Escalabilidad vertical: se actualiza la memoria, el procesador o los dispositivos de almacenamiento, esto puede ser suficiente.
- Escalabilidad horizontal: se añaden mas computadores al sistema distribuido y se aplica una o varias de las siguientes técnicas: réplicas, particion de los datos, duplicar procesamiento.
- Tenemos un solo servidor que se convierte en un cuello de botella a medida que aumentan las solicitudes, las cargas de trabajo.
- Un servicio que tiene en determinado momento un mayor número de requerimientos.
VS
Estática y dinámica (auto-escalado)
Problemas para lograr Escalabilidad Geográfica
Técnicas para lograr Escalabilidad
- Algoritmos distribuidos
- Cuando se pueda esconder las latencias de comunicación usando comunicaciones asíncronas, o de los procesos usando hilos. También se puede mover parte de la funcionalidad del servidor hacia el cliente.
- Particionar datos/funciones (ejemplo DNS próxima página)
- Usar réplicas/caching. Esto normalmente puede traer problemas de consistencia que es necesario resolver y puede que no se pueda tener al mismo tiempo consistencia y disponibilidad.
Las aplicaciones están desarrolladas para una LAN, que es mas veloz y confiable. - Se realizan operaciones de comunicación síncronas porque el tiempo de espera es reducido. - Algoritmos y estructuras de datos inadecuados.
Algoritmos
Controlar la degradación del rendimiento
Evitar cuellos de botellas
Ejm: Los algoritmos que emplean estructuras jerárquicas se comportan mejor frente al crecimiento de la escala, que los algoritmos que emplean estructuras lineales.
Los algoritmos no deberían ser centralizados.
DNS: Servidor de nombres. Ejem: flits.cs.vu.nl
MIGRACIÓN: esconde que un objeto se puede mover a otra localidad y no se afectan ni las comunicaciones ni las operaciones (ejem. telefonía movil). El movimiento lo inician los usuarios.
ACCESO: esconde las diferencias en la representación de los datos y en cómo se acceden los objetos.
Tipos de Transparencia
REPLICACIÓN: un objeto se puede replicar y esto debe ser transparente para el usuario. Todas las réplicas tienen el mismo nombre.
LOCALIZACIÖN: Esconde dónde se ubican los objetos (ejm. URL)
FALLAS: un usuario o aplicación no deberia notar que una pieza del sistema falló o no está trabajando de forma adecuada. El sistema debería recuperarse de forma automática de la falla.
RELOCALIZACIÓN: un objeto se puede mover a otro lugar mientras está en uso sin que el usuario se de cuenta (el movimiento lo decide el administrador del sistema). Por ejemplo migración de Máquinas Virtuales en la Nube.
CONCURRENCIA: el acceso a un objeto puede compartirse entre diferentes usuarios. Esto no debe afectar la consistentencia ni el desempeño.
Seguridad: Dado que los sistemas distribuidos tratan con datos e información sensible, se deben tener fuertes medidas de seguridad y privacidad.
Ejemplos de Sistemas Distribuidos
Procesamiento de Transacciones Distribuidas
Lecturas y Actividades
Actividad para realizar en grupos de máximo 3 personas:
- Escoger un Sistema o Aplicación Distribuida e identificar como "solucionan" (en caso de que lo hagan ) al menos 3 de los retos mencionados. En la tabla se muestran algunas posibilidades. Los estudiantes deben realizar un documento con la respuesta y subirlo a la asignación correspondiente.