Want to create interactive content? It’s easy in Genially!

Get started free

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:

Essential Map

Akihabara Map

Frayer Model

Create Your Story in Spanish

Microcourse: Key Skills for University

Microcourse: Learn Spanish

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.
Los sistemas reales son frecuentemente asíncronos. Pero existen problemas que no pueden resolverse con este modelo.

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.
  1. Tenemos un solo servidor que se convierte en un cuello de botella a medida que aumentan las solicitudes, las cargas de trabajo.
  2. 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.